FastCGI的IIS模組可以讓流行的應用程式框架在IIS上支援FastCGI協議以提供高效能和可用性的訪問服務,FastCGI面向現有的網路伺服器提供高效能的CGI替代標準。具體PHP 安裝方法我記錄下來,其中包括出現的一個錯誤.
環境:
作業系統:Windows 2003 Server
PHP版本:PHP5.25
1.下載FastCGI For IIS6
http://www.microsoft.com/downloads/details.aspx?FamilyID=2d481579-9a7c-4632-b6e6-dee9097f9dc5&displaylang=en
下載之後,雙擊運行進行安裝.
2.下載PHP5.25 Windows版
http://www.php.net
下載.zip格式的版本,下載後解壓至D:\PHP目錄,並給IIS啟動帳戶組或使用者賦予讀取和運行許可權.
3.註冊PHP到FastCGI
在命令列下運行
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"D:\PHP\php-cgi.exe"
fcgiconfig.js 預設存放目錄是:C:\WINDOWS\system32\inetsrv
4.設定
將D:\PHP\php.ini-recommended重新命名為為D:\PHP\php.ini
開啟D:\PHP\php.ini,修改:
extension_dir = "D:\PHP\ext"
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
其它根據實際需要對php.ini進行設定修改
然後執行:
cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:500
cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:1000
以上兩項設定最大池和響應串連數,可以根據運行機器的硬體設定、使用方式修改
一切完畢之後重啟IIS,趕緊寫一個測試頁試一下吧.
我第一次安裝時,由於為了伺服器的安全我刪除了wsshell命令,導致在第3步時出現了如下錯誤:
Microsoft JScript 執行階段錯誤: Automation 伺服器不能建立對象
後通過重新註冊命令:regsvr32 WSHom.ocx
問題解決
重啟IIS後,開啟測試頁出現如下提示:
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啟動帳戶賦予該目錄的讀取和運行許可權.修改檔案夾安全屬性,問題解決.