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