isapi 模式執行 php 的,這種方式最大的缺點就是穩定性不好,當 php 出錯的時候,apache程序也死掉了。後來看到網上關於 php 以 fastcgi 模式執行的介紹,其中提到的種種好處(穩定、安全、高效能)讓我決定嘗試一下。
然後修改 httpd.conf 檔案,加入下面幾行:
loadmodule fastcgi_module modules/mod_fastcgi.dll
修改完成後,重新啟動 apache 即可。
fastcgi 模式執行 php 的優點:
以 fastcgi 模式執行 php 有幾個主要的好處。首先就是 php 出錯的時候不會搞垮 apache,只是 php 自己的程序當掉(但 fastcgi 會立即重新啟動乙個新 php 程序來代替當掉的程序)。其次 fastcgi 模式執行 php 比 isapi 模式效能更好(我本來用 apachebench 進行了測試,但忘了儲存結果,大家有興趣可以自己測試)。
最後,就是可以同時執行 php5 和 php4。參考下面的配置檔案,分別建立了兩個虛擬主機,其中乙個使用 php5,另乙個使用 php4。
loadmodule fastcgi_module modules/mod_fastcgi-2.4.2-ap13.dll
scriptalias /fcgi-php5/ "d:/usr/local/php-5.0.4/"
fastcgiserver "d:/usr/local/php-5.0.4/php-cgi.exe" -processes 3
scriptalias /fcgi-php4/ "d:/usr/local/php-4.3.11/"
fastcgiserver "d:/usr/local/php-4.3.11/php.exe"
listen 80
namevirtualhost *:80
documentroot d:/www
options indexes followsymlinks multiviews
servername php5.localhost
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 php4.localhost
options indexes followsymlinks multiviews
allowoverride none
order allow,deny
allow from all
使用上面的配置,訪問 http://localhost/ 就使用 php5,而訪問 http://localhost:8080/ 就使用 php4。所以只要合理配置,就可以讓不同的虛擬主機使用不同版本的 php。
fastcgi 模式的一些缺點:
說完了好處,也來說說缺點。從實際使用來看,用 fastcgi 模式更適合生產環境的伺服器。但對於開發用機器來說就不太合適。因為當使用 zend studio 除錯程式時,由於 fastcgi 會認為 php 程序超時,從而在頁面返回 500 錯誤。這一點讓人非常惱火,所以我在開發機器上還是換回了 isapi 模式。
最後,在 windows 中以 fastcgi 模式存在潛在的安全漏洞。因為我還沒有找到如何在 windows 環境下實現 suexec 的方法,因此 php 的程序總是以最高許可權執行,這從安全角度來看顯然不是個好訊息。
linux下php以fastcgi模式執行
編譯和安裝apache,本文的目的只是演示php以fastcgi方式執行,為了方便,只選必須的引數編譯 編譯並安裝mod fcgid root localhost cd mod fcgid 2.3.6 root localhost apxs usr local apache2 bin apxs co...
linux下php以fastcgi模式執行
編譯和安裝apache,本文的目的只是演示php以fastcgi方式執行,為了方便,只選必須的引數編譯 編譯並安裝mod fcgid root localhost cd mod fcgid 2.3.6 root localhost apxs usr local apache2 bin apxs co...
linux下php以fastcgi模式執行
編譯和安裝apache,本文的目的只是演示php以fastcgi方式執行,為了方便,只選必須的引數編譯 編譯並安裝mod fcgid root localhost cd mod fcgid 2.3.6 root localhost apxs usr local apache2 bin apxs co...