Apache以FastCGI模式執行PHP

2021-05-01 04:55:18 字數 1895 閱讀 7478

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...