我一直以來都是以 isapi 模式運行 php(做為現(xiàn)在的主流開發(fā)語言) 的,這種方式最大的缺點就是穩(wěn)定性不好,當(dāng) php(做為現(xiàn)在的主流開發(fā)語言) 出錯的時候,apache(unix平臺最流行的web服務(wù)器平臺)進程也死掉了。后來看到網(wǎng)上關(guān)于 php(做為現(xiàn)在的主流開發(fā)語言) 以 fastcgi(現(xiàn)在已經(jīng)不多人在用了) 模式運行的介紹,其中提到的種種好處(穩(wěn)定、安全、高性能)讓我決定嘗試一下。
不過事情遠不如預(yù)計的那么順利。google 了無數(shù)次也沒找到一篇如何在 windows 下用 apache(unix平臺最流行的web服務(wù)器平臺) + fastcgi(現(xiàn)在已經(jīng)不多人在用了) 跑 php(做為現(xiàn)在的主流開發(fā)語言) 的資料,iis(微軟的web服務(wù)器平臺) + fastcgi(現(xiàn)在已經(jīng)不多人在用了) 跑 php(做為現(xiàn)在的主流開發(fā)語言) 的倒是不少。其中有一篇提到 zend 公司也推薦以 fastcgi(現(xiàn)在已經(jīng)不多人在用了) 模式運行 php(做為現(xiàn)在的主流開發(fā)語言)(http://php(做為現(xiàn)在的主流開發(fā)語言)lens.com/php(做為現(xiàn)在的主流開發(fā)語言)everywhere/fastcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言))。
經(jīng)過幾個小時的摸索,終于成功實現(xiàn)了 apache(unix平臺最流行的web服務(wù)器平臺) 1.3 + fastcgi(現(xiàn)在已經(jīng)不多人在用了) 跑 php(做為現(xiàn)在的主流開發(fā)語言)。
準(zhǔn)備工作:
首先訪問 http://www.fastcgi(現(xiàn)在已經(jīng)不多人在用了).com/dist/ 下載用于 apache(unix平臺最流行的web服務(wù)器平臺) 的 mod_fastcgi(現(xiàn)在已經(jīng)不多人在用了)。我使用的是 mod_fastcgi(現(xiàn)在已經(jīng)不多人在用了)-2.4.2-ap13.dll。下載后將這個文件復(fù)制到 apache(unix平臺最流行的web服務(wù)器平臺) 的 modules 目錄中。
下載 php(做為現(xiàn)在的主流開發(fā)語言)(我使用的 php(做為現(xiàn)在的主流開發(fā)語言)-5.0.4),并解壓縮,根據(jù)需要修改 php(做為現(xiàn)在的主流開發(fā)語言).ini 文件。注意不需要從 php(做為現(xiàn)在的主流開發(fā)語言) 所在目錄復(fù)制任何文件到 windows 目錄中。
修改配置:
然后修改 httpd.conf 文件,加入下面幾行:
loadmodule fastcgi(現(xiàn)在已經(jīng)不多人在用了)_module modules/mod_fastcgi(現(xiàn)在已經(jīng)不多人在用了)-2.4.2-ap13.dll
scriptalias /fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)5/ "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-5.0.4/"
fastcgi(現(xiàn)在已經(jīng)不多人在用了)server "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-5.0.4/php(做為現(xiàn)在的主流開發(fā)語言)-cgi(現(xiàn)在已經(jīng)不多人在用了).exe" -processes 3
# 說明:此處的 -processes 3 表示啟動三個 php(做為現(xiàn)在的主流開發(fā)語言)-cgi(現(xiàn)在已經(jīng)不多人在用了).exe 進程,
# 關(guān)于 fastcgi(現(xiàn)在已經(jīng)不多人在用了)server 的詳細參數(shù)請參考 fastcgi(現(xiàn)在已經(jīng)不多人在用了) 文檔。
addtype application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)5 .php(做為現(xiàn)在的主流開發(fā)語言)
action application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)5 "/fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)5/php(做為現(xiàn)在的主流開發(fā)語言)-cgi(現(xiàn)在已經(jīng)不多人在用了).exe"
# 說明:根據(jù)你的 php(做為現(xiàn)在的主流開發(fā)語言) 文件所在位置修改上面兩處黑體字。
修改完成后,重新啟動 apache(unix平臺最流行的web服務(wù)器平臺) 即可。
常見問題:
根據(jù)我的多次試驗,最容易出現(xiàn)的幾個問題主要都是由路徑引起的。因此首先檢查 php(做為現(xiàn)在的主流開發(fā)語言).ini 和 httpd.conf 文件中的所有路徑是否正確。其次就是如果系統(tǒng)中以前安裝過 php(做為現(xiàn)在的主流開發(fā)語言),那么要將 c:windowsphp(做為現(xiàn)在的主流開發(fā)語言).ini 改名或刪除。
其次還要檢查 php(做為現(xiàn)在的主流開發(fā)語言) 文件所在目錄是否有足夠的權(quán)限(我都是設(shè)置為 everyone - 完全控制,反正開發(fā)用機不用考慮那么多安全限制)。
fastcgi(現(xiàn)在已經(jīng)不多人在用了) 模式運行 php(做為現(xiàn)在的主流開發(fā)語言) 的優(yōu)點:
以 fastcgi(現(xiàn)在已經(jīng)不多人在用了) 模式運行 php(做為現(xiàn)在的主流開發(fā)語言) 有幾個主要的好處。首先就是 php(做為現(xiàn)在的主流開發(fā)語言) 出錯的時候不會搞垮 apache(unix平臺最流行的web服務(wù)器平臺),只是 php(做為現(xiàn)在的主流開發(fā)語言) 自己的進程當(dāng)?shù)簦ǖ?fastcgi(現(xiàn)在已經(jīng)不多人在用了) 會立即重新啟動一個新 php(做為現(xiàn)在的主流開發(fā)語言) 進程來代替當(dāng)?shù)舻倪M程)。其次 fastcgi(現(xiàn)在已經(jīng)不多人在用了) 模式運行 php(做為現(xiàn)在的主流開發(fā)語言) 比 isapi 模式性能更好(我本來用 apache(unix平臺最流行的web服務(wù)器平臺)bench 進行了測試,但忘了保存結(jié)果,大家有興趣可以自己測試)。
最后,就是可以同時運行 php(做為現(xiàn)在的主流開發(fā)語言)5 和 php(做為現(xiàn)在的主流開發(fā)語言)4。參考下面的配置文件,分別建立了兩個虛擬主機,其中一個使用 php(做為現(xiàn)在的主流開發(fā)語言)5,另一個使用 php(做為現(xiàn)在的主流開發(fā)語言)4。
loadmodule fastcgi(現(xiàn)在已經(jīng)不多人在用了)_module modules/mod_fastcgi(現(xiàn)在已經(jīng)不多人在用了)-2.4.2-ap13.dll
scriptalias /fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)5/ "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-5.0.4/"
fastcgi(現(xiàn)在已經(jīng)不多人在用了)server "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-5.0.4/php(做為現(xiàn)在的主流開發(fā)語言)-cgi(現(xiàn)在已經(jīng)不多人在用了).exe" -processes 3
scriptalias /fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)4/ "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-4.3.11/"
fastcgi(現(xiàn)在已經(jīng)不多人在用了)server "d:/usr/local/php(做為現(xiàn)在的主流開發(fā)語言)-4.3.11/php(做為現(xiàn)在的主流開發(fā)語言).exe"
listen 80
namevirtualhost *:80
documentroot d:/www
options indexes followsymlinks multiviews
servername php(做為現(xiàn)在的主流開發(fā)語言)5.localhost
addtype application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)5 .php(做為現(xiàn)在的主流開發(fā)語言)
action application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)5 "/fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)5/php(做為現(xiàn)在的主流開發(fā)語言)-cgi(現(xiàn)在已經(jīng)不多人在用了).exe"
indexoptions fancyindexing foldersfirst
options indexes followsymlinks multiviews
allowoverride none
order allow,deny
allow from all
listen 8080
namevirtualhost *:8080
documentroot d:/www
options indexes followsymlinks multiviews
servername php(做為現(xiàn)在的主流開發(fā)語言)4.localhost
addtype application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)4 .php(做為現(xiàn)在的主流開發(fā)語言)
action application/x-httpd-fastphp(做為現(xiàn)在的主流開發(fā)語言)4 "/fcgi(現(xiàn)在已經(jīng)不多人在用了)-php(做為現(xiàn)在的主流開發(fā)語言)4/php(做為現(xiàn)在的主流開發(fā)語言).exe"
新聞熱點
疑難解答