微軟去年底發(fā)布了II6的FastCGI模塊,今天將服務(wù)器上的PHP支持改成了FastCGI,目前運(yùn)行穩(wěn)定.FastCGI的IIS模塊可以讓 流行的應(yīng)用框架在IIS上支持FastCGI協(xié)議以提供高性能和可用性的訪問服務(wù),FastCGI面向現(xiàn)有的網(wǎng)絡(luò)服務(wù)器提供高性能的CGI替代標(biāo)準(zhǔn)。具體 PHP安裝方法我記錄下來,其中包括出現(xiàn)的一個(gè)錯(cuò)誤.
環(huán)境: 操作系統(tǒng):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
下載之后,雙擊運(yùn)行進(jìn)行安裝.
2.下載PHP5.25 Windows版 http://www.php.net
下載.zip格式的版本,下載后解壓至D:/PHP目錄,并給IIS啟動(dòng)帳戶組或用戶賦予讀取和運(yùn)行權(quán)限.
3.注冊(cè) PHP到FastCGI 在命令行下運(yùn)行 cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"D:/PHP/php-cgi.exe"
fcgiconfig.js 默認(rèn)存放目錄是:C:/WINDOWS/system32/inetsrv
4.設(shè)置 將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
其它根據(jù)實(shí)際需要對(duì)php.ini進(jìn)行設(shè)置修改 然后執(zhí)行: cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:500 cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:1000 以上兩項(xiàng) 設(shè)置最大池和響應(yīng)連接數(shù),可以根據(jù)運(yùn)行機(jī)器的硬件配置、使用情況修改
一切完畢之后重啟IIS,趕緊寫一個(gè)測(cè)試頁(yè)試一下吧.
我 第一次安裝時(shí),由于為了服務(wù)器的安全我刪除了wsshell命令,導(dǎo)致在第3步時(shí)出現(xiàn)了如下錯(cuò)誤: Microsoft JScript 運(yùn)行時(shí)錯(cuò)誤: Automation 服務(wù)器不能創(chuàng)建對(duì)象 后通過重新注冊(cè)命令:regsvr32 WSHom.ocx 問題解決
重 啟IIS后,打開測(cè)試頁(yè)出現(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)
這個(gè)錯(cuò)誤是由于在解壓PHP之后,沒有對(duì)IIS啟動(dòng)帳戶賦予該目錄的讀取和運(yùn)行 權(quán)限.修改文件夾安全屬性,問題解決. FastCGI Error The FastCGI Handler was unable to process the request. -------------------------------------------------------------------------------- Error Details: The FastCGI process exceeded configured activity timeout Error Number: 258 (0x80070102). Error Description: ????????×÷???±?? HTTP Error 500 - Server Error. Internet Information Services (IIS) 解決方法:明顯是FastCGI超時(shí),打開C:/WINDOWS/system32/inetsrv/fcgiext.ini,添加或修改 以下內(nèi)容
[Types] php=PHP [PHP] ExePath=C:/PHP/php-cgi.exe InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 RequestTimeout=500 ActivityTimeout=900 如果還不成功,可能需要安裝SQL Server 2008 SQL Server Native Client。為什么訪問2005要安裝這個(gè)呢??不明白啊不明白啊。反正看了這個(gè)文件的說明,說是支持2005的訪問的。下載地址:http://download.microsoft.com/download/A/5/F/A5F24C9B-8658-4356-B55B-CC333BF93928/sqlncli.msi |