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