教程相關(guān) 2010-05-08 16:23:19 閱讀173 評論0 字號:大中小 訂閱
在IIS6.0環(huán)境下安裝PHP5.3.2時(shí)選擇IIS FastCGI 選項會(huì )提示版本過(guò)低.需要升級到IIS7.0下才可!
但IIS7.0無(wú)法在WIN2003環(huán)境下部署,因此,在這里我們要使IIS6.0支持FastCGI,以便于安裝PHP5.3.2;那么我們就需要在服務(wù)器上安裝FastCGI!我們需要下載支持IIS6.0的FastCGI擴展包.
1.在服務(wù)器上打開(kāi)下面網(wǎng)址運行Microsoft Web 平臺安裝程序:
http://www.microsoft.com/web/gallery/install.aspx?appsxml=&appid=PHP%3bPHP%3bPHP
下載插件,然后安裝。
2.再重新刷新打開(kāi)上面的網(wǎng)址,啟動(dòng)加載程序!會(huì )彈出WEB平臺(如下圖),在上面我們勾選web服務(wù)器/自定義/應用程序開(kāi)發(fā)/FastCGI1.0,下一步直至FastCGI安裝完成;
PS:有關(guān)FASTCGI的官方說(shuō)明文檔:
http://www.iis.net/articles/view.aspx/IIS7/Hosting-Web-Applications/PHP/Configuring-FastCGI-Extension-for-IIS6-0-
IIS 6.0和IIS 5.1安裝FastCGI 1.5擴展包
在擴展包的主頁(yè)http://www.iis.net/expand/fastcgi下載FastCGI擴展包1.5的安裝包進(jìn)行安裝。and-IIS5-?Page=1
IIS6.0以FastCGI模式加載php環(huán)境的測試
很多人都在Windows平臺用IIS來(lái)跑PHP環(huán)境。如果在網(wǎng)絡(luò )上檢索一下的話(huà),就會(huì )發(fā)現,目前IIS+PHP環(huán)境有3種方法。
1、CGI方式加載PHP環(huán)境,通常就是IIS里面配置解釋器為php.exe,早期比較常見(jiàn),目前使用較少。
特點(diǎn)是:穩定,但效率太低。
2、ISAPI方式加載PHP環(huán)境,通常就是IIS里面配置解釋器為php5isapi.dll,目前使用最多,應用最廣。
特點(diǎn)是:多線(xiàn)程,效率較高,但不夠穩定。
3、FastCGI方式加載PHP環(huán)境,在IIS環(huán)境里并不常見(jiàn),但其它系統環(huán)境應用還是有的,不過(guò)IIS7.0開(kāi)始內置FastCGI了。
特點(diǎn)是:高效率,高穩定性,屬于將來(lái)發(fā)展趨勢。
今天我給大家介紹的是第三種,也就是最不常見(jiàn)的IIS6.0以FastCGI模式加載php環(huán)境。據說(shuō)相同配置下FastCGI方式加載PHP比ISAPI方式加載PHP性能提高很多,今天我的重點(diǎn)就放在IIS6.0以FastCGI模式加載php環(huán)境的測試,看看究竟性能是不是提升了。
當然我的理由也很充分,我沒(méi)有足夠好的服務(wù)器,所以我要榨干服務(wù)器的資源,如果確實(shí)FastCGI的性能更好,那我就賺了:)
什么是FastCGI
FastCGI是語(yǔ)言無(wú)關(guān)的、可伸縮架構的CGI開(kāi)放擴展,其主要行為是將CGI解釋器進(jìn)程保持在內存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進(jìn)程管理器調度,則可以提供良好的性能、伸縮性、Fail-Over特性等等。
FastCGI的工作原理是
1、Web Server 啟動(dòng)時(shí)載入FastCGI進(jìn)程管理器(IIS ISAPI或Apache Module)。
2、FastCGI進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)CGI解釋器進(jìn)程(在任務(wù)管理器中可見(jiàn)多個(gè)php-cgi.exe)并等待來(lái)自Web Server的連接。
3、當客戶(hù)端請求到達Web Server時(shí),FastCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。Web server將CGI環(huán)境變量和標準輸入發(fā)送到FastCGI子進(jìn)程php-cgi.exe。
4、FastCGI子進(jìn)程完成處理后將標準輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進(jìn)程關(guān)閉連接時(shí),請求便告處理完成。FastCGI子進(jìn)程接著(zhù)等待并處理來(lái)自FastCGI進(jìn)程管理器(運行在WebServer中)的下一個(gè)連接。 在正常的CGI模式中,php-cgi.exe在此便退出了。
在上述情況中,你可以想象CGI通常有多慢。每一個(gè)Web請求PHP都必須重新解析php.ini、重新載入全部dll擴展并重初始化全部數據結構。使用FastCGI,所有這些都只在進(jìn)程啟動(dòng)時(shí)發(fā)生一次。一個(gè)額外的好處是,持續數據庫連接(Persistent database connection)可以工作。
注意::如果您已經(jīng)安裝FastCGI 1.0版,1.5測試版或1.5 RC版,安裝程序包會(huì )將它升級到1.5 – RTW。所有在fcgiext.ini文件中與IIS配置和設置相關(guān)的數據將在升級過(guò)程保留。請注意,在從1.0版升級的過(guò)程中,fcgiext.ini中的注釋將不被更新。無(wú)論如何,新的設置仍然可以在升級后使用。
早在2006年,微軟就和Zend等廠(chǎng)商一起研發(fā)Windows Server下的優(yōu)化工作,IIS產(chǎn)品組已經(jīng)公布了IIS6和7的FastCGI擴展,它能讓PHP執行效率更高.
新功能
FastCGI 1.5擴展包的新功能:
· 監測文件的變化。擴展包可以配置為偵聽(tīng)特定文件的改變,擴展包將在進(jìn)程池中回收FastCGI的進(jìn)程。此功能可用于當php.ini文件修改時(shí)回收PHP進(jìn)程。
· 實(shí)時(shí)調整MaxInstances設置。這MaxInstances設置決定了最大數量的FastCGI進(jìn)程,可為每個(gè)應用程序池啟動(dòng)。如果它被設置為0,那么FastCGI擴展包將每隔幾秒自動(dòng)調整實(shí)例數增加或減少系統的負載和處理排隊的請求。
· STDERR的流處理。在STDERR有幾個(gè)選項是擴展包如何處理FastCGI應用程序發(fā)送的文本。擴展包可以發(fā)送錯誤數據到一個(gè)失敗響應的HTTP客戶(hù)端,也可以忽略該錯誤并對任何在STDOUT上收到的文件發(fā)送一個(gè)200狀態(tài)代碼作為回應。
· 對FastCGI進(jìn)程發(fā)送終止信號。擴展包可以配置為在中止FastCGI的進(jìn)程前,給它發(fā)送一個(gè)終止信號。這使FastCGI的進(jìn)程在被中止前可以完全關(guān)閉。
· _FCGI_X_PIPE_環(huán)境變量。這個(gè)變量值由FastCGI擴展包設置,這個(gè)名字包含了是擴展包和FastCGI進(jìn)程溝通管道的名字。
· 不嚴格執行應答報頭。FastCGI擴展包不嚴格的執行應答報頭。
· 每個(gè)應用程序的FastCGI進(jìn)程池。在以前版本的擴展包中,FastCGI的進(jìn)程池可以界定為整個(gè)IIS服務(wù)器或每個(gè)IIS站點(diǎn)。在FastCGI 1.5版本中,也可以為每個(gè)IIS應用程序界定FastCGI進(jìn)程池,它允許有兩個(gè)不同版本的PHP用于同一網(wǎng)站的不同應用進(jìn)程。
· 服務(wù)器變量值使用UTF - 8碼。默認情況下的FastCGI使用ASCII碼設置服務(wù)器變量。如果FastCGI應用程序需要的UTF - 8碼作為某些服務(wù)器變量的值,擴展包可以為需要服務(wù)的服務(wù)器變量配置UTF – 8碼。
· 更多解釋錯誤的語(yǔ)句在fcgiext.ini配置不正確時(shí)被使用
· 配置設置的默認值改變。 MaxInstances現在設置為0,這樣實(shí)時(shí)調整MaxInstances是能在默認情況下進(jìn)行的。 ActivityTimeout設置為70秒。
另外,如果您使用擴展包出現任何問(wèn)題時(shí)或有任何問(wèn)題或建議。請務(wù)必訪(fǎng)問(wèn)IIS.NET的 FastCGI的處理程序論壇 下載地址: 32位下載:http://www.iis.net/Downloads/files/fastcgi/GoLive/fcgisetup32.msi 64位下載:http://www.iis.net/Downloads/files/fastcgi/GoLive/fcgisetup64.msi IIS6.0下PHP FastCGI環(huán)境搭建 今天介紹一下IIS6.0下PHP FastCGI環(huán)境搭建,一些資料稱(chēng)IIS下FastCGI的運行效率是ISPAI的兩倍之多。不管到底怎么樣,如果您還停留在ISAPI的運行環(huán)境下的話(huà),一定要先測試再使用。免得造成不必要的麻煩。 第一步:下載安裝FastCGI Extension for IIS 第二步:注冊PHP到FastCGI 打開(kāi) C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件: 在文件最下方 [Types] 下添加以下配置: [PHP] 注:ExePath這個(gè)路徑為存放PHP文件夾的路徑; 第三步:配置php.ini 主要是以下兩項,其它的按個(gè)人需要進(jìn)行配置: extension_dir = “C:\PHP\ext” 第四步:配置IIS支持 右鍵網(wǎng)站 -> 屬性 -> 主目錄 -> 配置 -> 添加,如下圖配置: 最后:重啟IIS; cmd–iisreset; phpinfo(); Server API CGI/FastCGI OK!
FastCGI是可伸縮架構的CGI開(kāi)放擴展,其主要行為是將CGI解釋器進(jìn)程保持在內存中并因此獲得較高的性能。傳統的CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進(jìn)程管理器調度,則可以提供良好的性能、伸縮性等。
安裝后確認IIS中,Web 服務(wù)擴展 – FastCGI Handler處于打開(kāi)狀態(tài);
[Types]
php=PHP
ExePath=C:\PHP\php-cgi.exe
fastcgi.impersonate = 1
可執行文件路徑:C:\WINDOWS\system32\inetsrv\fcgiext.dll
聯(lián)系客服