一般在已經(jīng)安裝iis的windows系統(tǒng)上已經(jīng)默認支持了asp及aspx,那么下面主要講解如何讓其也支持php并且支持MYSQL數(shù)據(jù)庫。
特別聲明:【如果是選擇PHP5.4.10安裝版則可以省略此步驟,因為它自動添加了配置,但是由于PHP5.4.10沒有安裝版,所以只能自己配置,自己配置難度較大,我最終選擇的是PHP5.3.20版本
但以下部分我也把PHP5.4.10手動配置給寫了出來,供網(wǎng)友參考】
第一部分:、首先你要到網(wǎng)址http://windows.php.net/download/下載PHP For Windows 版本,你會看到這里有很多不同的版本可以下載,那么該如何選擇呢?第一個選擇是首先選擇最新的版本,我們看到現(xiàn)在最新的版本是PHP 5.4 (5.4.10),好那么我們就下載PHP5.4.10版本。
?、偃绾芜x擇PHP5.4.10的VC6版本和VC9版本
VC6版本是使用Visual Studio 6編譯器編譯,如果PHP是用Apache來架設,那就選擇VC6版本。
?、谌绾芜x擇PHP5.4.10的Thread Safe版本和Non Thread Safe版本
從字面上理解,Thread Safe是線程安全,執(zhí)行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。Non Thread Safe是非線程安全,在執(zhí)行時不進行線程(Thread)安全檢查。
第二部分:、再來看PHP的兩種執(zhí)行方式:ISAPI和FastCGI。
------------------------------------------------------------------------------
注意:
③我們有沒有什么辦法讓PHP5.4.10 在IIS里運行的呢?當然有了,那就是使用FastCGI。據(jù)說它的效率很高,
④為什么FastCGI的執(zhí)行效率會很高呢?那是因為FastCGI是可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中并因此獲得較高的性能。傳統(tǒng)的CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進程管理器調度,則可以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執(zhí)行效率
第三部分: Windows 2003環(huán)境下搭建PHP5.4.10教程
1.下載 FastCGI For IIS6
http://www.iis.net/expand/FastCGI(下載X86版本)把左邊的網(wǎng)址拷貝到地址欄即可下載
(注:實際是到http://www.iis.net/downloads/microsoft/fastcgi-for-iis這個網(wǎng)址下載FastCGI for IIS.)
下載頁面為:
下載的文件為FastCGIIIS6.26FastCGIIIS6.exe,下載之后,雙擊進行安裝,出現(xiàn)如下圖所示的畫面:
關鍵是這一步,這一步不能點擊我接受,而要點擊上面的蘭色文字“直接下載鏈接”它就會到http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65BF6717D/fcgisetup_1.5_x86_rtw.msi去直接下載。
安裝后在 C:\WINDOWS\system32\inetsrv 目錄下產(chǎn)生了五個文件。如下圖:
同時在 IIS 的 “Web 服務擴展”里多了 FastCGI Handler。
2.下載PHP 5.4 (5.4.10)
到網(wǎng)址http://windows.php.net/download/下載PHP For Windows 版本VC9 x86 Non Thread Safe (2012-Dec-20 00:23:45)下載后解壓,解壓后拷貝到安裝目錄(我的安裝目錄是C:\PHPServer\PHP)。
3. 注冊 PHP 到 FastCGI
我個人的理解是,只要“Web 服務擴展”里的 FastCGI Handler 為允許時,在加載 fcgiext.dll 時,會讀取 fcgiext.ini 配置文件的內容,根據(jù)里面的配置為每個網(wǎng)站提供映射。
打開C:\WINDOWS\system32\inetsrv\fcgiext.ini文件
在文件最后加上下面的語句:
[Types](這個是文件原來就有的,在[Types]后面加上下面的語句就可以,要全部哦不然會報錯的。)
php=PHP
[PHP]
ExePath=C:\PHPServer\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\
“php”表示擴展名,“PHP”是配置節(jié)名稱,以“[PHP]”定義。
4. 配置 php.ini
PHP5.4.10安裝目錄下是沒有PHP.ini這個文件的,只有php.ini-development和php.ini-production,我們將C:\PHPServer\PHP\php.ini-development復制一個,然后重命名為 C:\PHPServer\PHP\php.ini(當然如果你怕有錯可以先備份一下)。
打開 C:\PHPServer\PHP\php.ini,
修改PHP.ini文件:
1。查找display_errors改為:display_errors = On
2。查找display_startup_errors改為:display_startup_errors = On
3。查找error_prepend_string改為:error_prepend_string = "<br><font color=#ff0000>"
4。查找error_append_string改為:error_append_string = "</font><br><br>"
5。查找extension_dir改為:extension_dir = "C:\PHPServer\PHP\ext\"
6。查找fastcgi.impersonate改為:fastcgi.impersonate = 1
7。下列代碼按下修改,在Windows Extensions中去除擴展前面的分號(;):
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_exif.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
可以看出主要是去掉前面的“;”號
8。查找date.timezone改為:date.timezone = PRC
修改完記得重啟 IIS。
5. 配置網(wǎng)站【如果是安裝版的此步驟也可以省略,例如PHP 5.3.20就可以下載到安裝版,
因為安裝版自動添加了!】
右鍵網(wǎng)站 => 屬性 => 主目錄 => 配置 => 添加,如下圖配置:
可執(zhí)行文件路徑:C:\WINDOWS\system32\inetsrv\fcgiext.dll
全部配置好了,一定要把IIS服務重啟一下。
6. 新建一個 phpinfo.php 文件,內容為:
<?php
7.配置PHP后,運行phpinfo.php程序,出現(xiàn)如下的錯誤提示。
FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------
Error Details:
Error Number: 5 (0x80070005).
Error Description: 拒絕訪問。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
原來是沒有賦予用戶相應權限,注意這里是給“PHP安裝目錄”賦權,給“IIS 啟動帳戶組或用戶賦予讀取和運行權限”
給此目錄增加一個“IIS 啟動進程帳戶”,方法如下:
“安全”標簽,“添加”,“高級”,“立即查找”,“Network Server”,“確定”即可,就給目錄加上了IIS啟動帳號。
看到類似以下效果說明你的服務器可以跑 php 了。
使用