在IIS 5.1 或IIS6 中配置PHP 的FastCGI模式
一、FastCGI是什么?
FastCGI是語(yǔ)言無(wú)關(guān)的、可伸縮架構(gòu)的CGI開(kāi)放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較高的性能。眾
所周知,CGI解釋器的反復(fù)加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中并接受FastCGI進(jìn)程管理器調(diào)度,則可以提供良好的性能、
伸縮性、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、當(dāng)客戶端請(qǐng)求到達(dá)Web Server時(shí),F(xiàn)astCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。Web server將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程php-cgi.exe。
4、FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回Web
Server。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告處理完成。FastCGI子進(jìn)程接著等待并處理來(lái)自FastCGI進(jìn)程管理器(運(yùn)行在
WebServer中)的下一個(gè)連接。 在正常的CGI模式中,php-cgi.exe在此便退出了。
在上述情況中,你可以想象CGI通常有多慢。每一個(gè)Web請(qǐng)求PHP都必須重新解析php.ini、重新載入全部dll擴(kuò)展并重初始化全部數(shù)據(jù)結(jié)構(gòu)。
使用FastCGI,所有這些都只在進(jìn)程啟動(dòng)時(shí)發(fā)生一次。一個(gè)額外的好處是,持續(xù)數(shù)據(jù)庫(kù)連接(Persistent database
connection)可以工作。
三、在IIS 5.1 或IIS6 中配置PHP 的FastCGI模式
假設(shè)你已經(jīng)成功安裝微軟的IIS 5.1 或 IIS 6,接下來(lái)講解如何配置PHP 的FastCGI 模式。
首先,先安裝適用于 IIS 5.1 或 IIS 6 的FastCGI 擴(kuò)展。請(qǐng)到下面的鏈接下載相關(guān)FastCGI 擴(kuò)展:
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
但你運(yùn)行FastCGI 擴(kuò)展安裝程序時(shí),它拷貝下列文件到"%WINDIR%\system32\inetsrv" 文件夾,并注冊(cè)開(kāi)啟IIS 支持FastCGI 擴(kuò)展。該安裝程序?qū)⒖截惖奈募斜硎牵?/p>
fcgiext.dll ,fcgiext.ini ,fcgiconfig.js
其次,下載安裝PHP。上一步安裝的FastCGI 擴(kuò)展完全兼容 PHP 4.4.x 和 PHP 5.x ,請(qǐng)你到http://www.php.net/downloads 下載并安裝non-thread-safe PHP build available for Windows 。
第三,配置FastCGI 擴(kuò)展與PHP 協(xié)同工作。
方法一:使用腳本來(lái)自動(dòng)配置。
在CMD 命令行里進(jìn)入"%WINDIR%\system32\inetsrv" 目錄,執(zhí)行如下命令:
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe"
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe" –site:1
方法二:手動(dòng)配置
1.在“開(kāi)始”菜單“運(yùn)行”里運(yùn)行inetmgr.exe ,然后雙擊本地電腦圖標(biāo),右擊“網(wǎng)站”選擇“屬性”,單擊“主目錄”選項(xiàng),點(diǎn)擊“配置”按鈕,單擊”添加“按鈕,單擊”瀏覽“ 在 %WINDIR%\system32\inetsrv 里尋找fcgiext.dll 。
2.在擴(kuò)展名里輸入 .php , 動(dòng)作選擇”限制為“,輸入”GET,HEAD,POST“。確認(rèn)”腳本引擎“和”檢查文件是否存在“是否選擇,如沒(méi)選中,請(qǐng)選中。確認(rèn)無(wú)誤后,單擊”確定“。
3.配置fcigext.ini (溫馨提示:它在%WINDIR%\system32\inetsrv 目錄里)
簡(jiǎn)單的在fcigext.ini 末尾添加如下內(nèi)容即可:
[Types]
php=PHP
[PHP]
ExePath=c:\php\php-cgi.exe
修改好fcigext.ini ,保存之。重啟IIS 5.1 或 IIS 6 就可以使用PHP 的FastCGi 了。
第四,寫(xiě)個(gè)簡(jiǎn)單的腳步測(cè)試PHP FastCGI 是否正常工作了。
在C:\Inetpub\wwwroot 目錄創(chuàng)建info.php 文件,打開(kāi)info.php ,填寫(xiě)如下內(nèi)容:
<?php phpinfo(); ?>
保存info.php,然后在瀏覽器地址欄里輸入http://localhost/info.php 回車便可看到如下頁(yè)面:
OK!一切搞定,祝你在學(xué)習(xí)配置PHP FastCGI 中順利!
最后,如你認(rèn)為對(duì)你有所幫助,請(qǐng)收藏之吧。如需轉(zhuǎn)載,請(qǐng)注明來(lái)處:http://hi.baidu.com/usen68/
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇