轉很好用的 php+mysq+iis配置

來源:互聯網
上載者:User
在Windows上配置PHP和MySQL(轉存)2009-05-24 15:29

第一步:在Windows Server 2003 R2系統上安裝Application Server角色

在系統上安裝Application Server角色,點擊“開始菜單”,選擇“管理伺服器”。在管理伺服器主視窗中,點擊“添加或刪除一個角色”選項。(圖1)

把Application Server角色安裝到伺服器上,使它可以做網站的主機

Windows將在伺服器上搜尋現有的角色,提供一個角色的完整列表以進行安裝。(圖2)

Application Server角色包括IIS和ASP.net

在伺服器角色的安裝過程中,系統可能要求你插入Windows Server光碟片。所需的檔案在光碟片1中。

安裝完成後,系統會更新管理伺服器視窗,以反映所添加的新角色。

第二步:下載PHP和MySQL

這時,伺服器已作好支援網頁的準備。但由於還沒有安裝PHP或MySQL,網頁還是靜態。在安裝PHP和MySQL之前,必須從它們各自的網站下載其Windows版本。

MySQL

首先說明MySQL的安裝。到本文發表時止,MySQL 5.1還處於測試階段,5.0版本已在普遍應用。即使我要在64位的Windows上安裝MySQL,我還是要下載它的32位版本。畢竟,PHP也要安裝在同一台伺服器上,而它在64位的硬體上還不大通用,這意味著還必須使用32位的IIS,所以沒有辦法完全實現64位。MySQL共有三個版本:精華版、完整版或不需要安裝版本。

精華版:精華版是一個旨在滿足多數使用者需求的MSI安裝檔案。
完整版:如你所期待的,完整版比精華版包含更多組件,包括一套評測工具。
不需安裝版:這個版本與完整版一樣,但不包含設定精靈或安裝器,必須手工進行安裝。
在本文中,安裝精華版即可。在這種情況下,我將下載的檔案命名為mysql-essential-5.0.24a-win32.msi,並儲存在案頭上。

PHP

為增加網頁的動態效果,特別是你希望從MySQL這樣的資料庫中提取資訊的時候,有必要使用PHP之類的語言。PHP有兩個不同的版本:4.x系列版本和5.x系列版本。如果你要用到舊網站中的指令碼,可能需要使用PHP 4.x系列版本,因為5.x系列版本進行了一些修改。由於我要建立一個全新的網站,所以我使用最新的版本。到本文發表時止,最新版本為5.1.6。

第三步:安裝MySQL

安裝過程相當簡單,但我為讀者提供安裝和配置過程的一屏一屏的指導。

MySQL安裝

安裝程式的第一個視窗很有代表性,要求您選擇希望執行的安裝類型。我希望進行典型安裝,它將MySQL安裝到C:/Program Files (x86)/MySQL/MySQL Server 5.0目錄下。在32位的系統中,目標目錄為C:/Program Files/MySQL/MySQL Server 5.0。(圖3)

我不對概要視窗進行說明。接下來的才是重要步驟。

MySQL配置

安裝完成後,立即會啟動MySQL設定精靈,它問您一些問題,瞭解您準備如何應用伺服器。根據您的回答,MySQL設定精靈建立資料庫伺服器的設定檔,其中包含運行伺服器的調整參數。

配置過程的第一步是決定如何設定管理員。您希望系統詢問您許多關於伺服器應用的問題;還是希望MySQL使用一個預定的設定檔,然後您再手工操作呢?下面我們對這個例子進行詳細說明。(圖4)

您希望進行詳細分析還是只想使用一個預定的配置呢?

為給資料庫分配適當的RAM及其它資源,MySQL設定精靈問您打算如何應用伺服器。(圖5)如果您的伺服器專用於資料庫工作,MySQL將使用儘可能多的RAM與其它資源。因為我的測試伺服器既是資料庫,又是網路伺服器,所以我選擇服務機器(Server Machine)。

另外,設定精靈詢問另一個問題,這個問題有助於為您提供調整到最佳的系統以實現您的目標。在我的例子中,我選擇使用多功能資料庫選項(圖6),它適合常規使用。

接下來系統請您定義InnoDB tablespace設定。我選擇使用預設設定。(圖7)

如下面圖8所示。接著我們來決定與MySQL資料庫建立多少並發串連。不要低估這個資料。如果串連用完了,訪問您的網站的其他使用者就不能訪問資料庫。但是,這個資料也不宜過大,因為別的資料庫連接也需要其它資源。必須建立一種平衡。

我們一般通過TCP/IP訪問MySQL資料庫。在預設情況下,MySQL使用3306連接埠進行通訊。您可以關閉TCP/IP或修改圖9中配置頁面上的連接埠號碼。在這個頁面上,您還可以選擇“啟用標準模式”(Enable Strict Mode),這樣MySQL就不會允許細小的語法錯誤。如果您還是個新手,我建議您取消標準模式以減少麻煩。但熟悉MySQL以後,盡量使用標準模式,因為它可以降低有害資料進入資料庫的可能性。

下一個視窗我不做過多的說明。(圖10)既然我只使用英文,我選擇標準字元集。

在設定精靈的下一個視窗中,系統詢問你是否希望將MySQL安裝為一項Windows服務,以及這項服務是否應隨伺服器一同啟動。另外,還要求你決定是否將MySQL命令添加到Windows路徑中。我做出明智選擇,讓MySQL服務隨作業系統一起啟動,並選擇修改系統路徑。(圖11)

網路伺服器和資料庫的安全也是重要的因素。同樣,你應該為資料庫伺服器設定一個安全的根密碼;如果不是完全必要,禁止遠程根訪問,並且不要建立匿名賬戶。(圖12)

安全設定是嚮導中的最後配置項。一旦設定完成,嚮導準備進行配置,將配置資訊寫入C:/Program Files [{x86}]/MySQL/MySQL Server 5.0/my.ini檔案中,然後啟動資料庫服務。

現在,你已經建立了一個運行正常的MySQL資料庫伺服器。現在我們轉向PHP

第四步:安裝並配置PHP

這可能是整個過程中最難的部分。讓PHP與IIS 6協作有時是一種挑戰。下面我將進行完整的說明。

安裝PHP

第一個任務是從前面下載的壓縮檔中安裝PHP。我一般將PHP安裝到C:/PHP5檔案夾中。在系統中完成以下操作:

在C盤上建立一個叫做PHP5的檔案夾。
將下載的檔案解壓到這個位置。Windows Server 2003 R2內建的解壓工具能夠順利完成這一任務。
不管你信不信,這就是PHP5的整個“安裝過程”。現在,進入更難的操作:配置PHP。

配置PHP

需要採取幾個步驟使PHP在 Windows下與IIS共同工作

在系統的路徑變數中增加C:/PHP5。(圖13)這樣,系統能夠更方便地定位它所需要的PHP DLL檔案。

選擇開始並在我的電腦上右擊滑鼠。
在出現的捷徑功能表中選擇屬性。
在屬性視窗中選擇進階標籤。
點擊環境變數按鈕。
在系統變數列表中雙擊路徑變數。
在路徑變數的末尾增加“;C:/PHP”。(沒有引號!)
重啟伺服器。

將C:/PHP5/php.ini-dist檔案複製到C:/PHP5/php.ini,這是PHP的設定檔。-dist版本只是一個樣本。
現在,建立一個名為PHPRC的系統變數,並將它分配到php.ini檔案的路徑中。如果你選擇這樣做,而不是建立一個登錄機碼來完成同樣的任務,必須保證你的PHPRC變數只包含php.ini的路徑,而不是路徑和php.ini檔案名稱。
最後,為使PHP與MySQL共同工作,你必須對c:/php5/php.ini進行一些修改。
用你最常用的文字編輯器開啟c:/php5/php.ini。
找到extension_dir配置選項,保證這一行是:extension_dir = "./ext",它告訴PHP在哪找到其它要載入的模組。在應用MySQL和PHP時,你至少需要一個模組。
找到";extension=php_mysql.dll"這一行,刪除前面的分號(;)。在php.ini檔案中,分號用來注釋配置行。在本例中,我希望反注釋載入PHP MySQL模組的行。
在前面一行的正下方,添加:"extension=php_mysqli.dll"。這個模組啟用新版MySQL的其它一些功能。
在命令提示字元下輸入”iisreset”命令,重新載入帶新設定檔的IIS和PHP。

配置IIS在32位元模式下運行(僅用於64位Windows)

正式的PHP Windows binaries還不能用於64位Windows構架上,但你還是可以在64位Windows上運行它。但要實現這一點,你必須在32位模擬模式下運行IIS 6。在你的Windows伺服器中執行以下操作:

進入命令提示字元。
從命令提示字元視窗轉入C:/Inetpub/Adminscripts檔案夾。如果Windows安裝在C盤以外的磁碟上,使用相應的盤符。
在Adminscripts檔案夾中,輸入下列命令:cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1,Enable32bitAppOnWin64的值1告訴Windows在32位元模式下運行w3svc,而0值表示64位。
輸入iisreset。
重啟伺服器。
配置IIS

PHP配置完成後,在你開始應用它之前,你還必須告訴IIS如何使用這項新服務。否則,試圖從IIS伺服器中將PHP檔案載入到網路瀏覽器只會得到錯誤的結果。

有兩種方法可在IIS中運行PHP——應用ISAPI,或以CGI副檔名的形式。由於應用ISAPI一般會得到較好的效能,在本文中我們應用此種方法。首先,我們將PHP ISAPI副檔名增加到IIS中。

開始——管理工具——互連網資訊服務(IIS)管理器。
選擇伺服器名稱——網路服務副檔名。
在右方框中,點擊“增加一個新的網路服務副檔名…”選項。
在結果視窗的“副檔名”中輸入“PHP ISAPI”。
點擊“添加”按鈕。
瀏覽至C:/PHP5/php5isapi檔案。
點擊OK。
選中“允許設定副檔名狀態”複選框。(圖14)
點擊OK。

增加新的副檔名(.php)

開始——管理工具——互連網資訊服務(IIS)管理器。
右擊網址,在出現的捷徑功能表中選擇屬性。
在屬性視窗中,選擇“主目錄”標籤。
點擊“配置”按鈕。
點擊“添加”按鈕。
在“添加/編輯應用副檔名映射”視窗中,點擊運行欄旁的“瀏覽”按鈕並找到C:/PHP5/php5isapi.dll檔案。
在副檔名輸入框中輸入“.php”。(圖15)

在動作(Verbs)標題下,選擇“僅限於”選項,在文字框中輸入“GET、POST、HEAD”.
點擊OK,返回IIS管理器主視窗。

同時,在IIS中,確保你設定了網站許可,以便執行指令碼:

開始——管理工具——互連網資訊服務(IIS)管理器。
右擊網址,在出現的捷徑功能表中選擇屬性。
在屬性視窗中,選擇“主目錄”標籤。
在“應用設定”中,將“執行許可”選項改為“僅用於指令碼”。(圖16)

最後,在IIS中,確保你添加了一個預設的PHP頁面,如index.php。這樣,使用者就不必為網路伺服器上的一個特定檔案夾指定完整的路徑,以及PHP指令碼名。相反,如果使用者訪問一個目錄,其中含有一個名為index.php的檔案,ISS就會自動載入它。

開始——管理工具——互連網資訊服務(IIS)管理器。
右擊網址,在出現的捷徑功能表中選擇屬性。
在屬性視窗中,選擇“檔案”標籤。
點擊“添加”按鈕。
在“新增內容頁面”視窗中輸入“index.php”。(圖17)

點擊OK。
再點擊OK。如果你得到一個子節點也受到影響的資訊,點擊OK。

測試PHP

現在對PHP進行測試,保證它能夠應用IIS實現動態網頁面。

在IIS網路根目錄下(一般為C:/Inetpub/wwwroot)建立一個名為phpinfo.php的檔案。
在這個檔案中,粘貼一行文本:<? phpinfo(); ?>。這實際是一段完整的PHP指令碼,用來輸出基於PHP的網路伺服器的全部配置。
現在,在任務機器上訪問http://{yourserver}/phpinfo.php,或從伺服器上訪問http://127.0.0.1/phpinfo.php。
如果出現錯誤,說明配置有錯誤。
你應該會得到類似於的視窗。(圖18)

確保在MySQL的phpinfo中有一個板塊。如果沒有,返回並保證你正確修改了php.ini檔案,使它載入MySQL模組。

第五步:測試MySQL網路連接

在檢測安裝是否成功,你需要一個樣本資料庫再次進行測試。在本文中,我將使用MySQL命令列工具建立一個小型樣本資料庫,它的唯一目的在於保證PHP/MySQL串連正常。

要建立這個樣本資料庫:

1. 首先要建立一個真正的資料庫。通過以下命令實現:
mysqladmin -uroot –p******* create sample
注意:如果這裡出現錯誤,確保密碼正確(-u參數指定使用者名稱,-p參數是你在MySQL
設定階段分配的密碼。)

2. 現在,繼續建立表格並添加一些資料。另外,從命令列中執行下列命令:

C:>mysql -uroot -p******* sample
這時用前面使用的相同密碼替代*。剩下的步驟在MySQL命令介面中完成。
在MySQL提示符下,輸入
CREATE TABLE sample_table ( FirstName varchar(30), MiddleName varchar(30), LastName varchar(30) ); mysql> INSERT into sample_table Values ( "Scott", "David", "Lowe") ; mysql> INSERT into sample_table Values ( "Ralph", "John", "Malph") ;
注意:上面步驟中的分號極為重要。
從網路伺服器利用根使用者帳號訪問資料庫是一個主要的安全威脅。所以,你應該為這一目的建立一個單獨的帳號。在MySQL介面中輸入下列命令:
GRANT ALL ON sample.* toWebuser@localhostidentified by 'password';
輸入“離開”(quit)退出MySQL介面。
接下來,你需要網路伺服器下的一個PHP指令碼,它能夠閱讀這個新資料庫的內容。如果成功做到這一點,你就擁有了一個運轉正常的IIS/PHP/MySQL系統。

在網路根目錄下(一般為C:/inetpub/wwwroot),建立一個名為dbtest.php的檔案。
在這個檔案中,粘貼下面的PHP代碼:
<?

$Username = "Webuser";

$Password = "password";

$Database = "sample";

$Hostname = "localhost";

$MySQLConnection = mysql_connect($Hostname, $Username, $Password) or die("Unable to connect to MySQL Database!!");

$MySQLSelectedDB = mysql_select_db($Database, $MySQLConnection) or die("Could not Set the Database!!");

$MySQLRecordSet = mysql_query("SELECT * FROM sample_table");

print "First Name-" . "Middle Name-" . "Last Name<br>";

while ($MyRow = mysql_fetch_array($MySQLRecordSet, MYSQL_ASSOC))

{

print $MyRow['FirstName'] . "-" . $MyRow['MiddleName'] . "-" . $MyRow['LastName'] . "<br>";

}

mysql_close($MySQLConnection);

? >

儲存這個檔案,然後使網路瀏覽器指向http://{yourserver}/dbtest.php,你將得到類似於19的視窗。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.