安裝php又面臨到了模式的選擇,之前都是選擇mod_php模式,由於這樣安裝比較方便哈,今天忽然關心起FastCGI這種模式,敗毒了一把,找到了一些關於mod_php和Fastcgi的選擇與對比這方面的討論,如今發出來留一個記號,以便進一步研究: php
第一篇:php在apache中安裝模式的區別:fastcgi和mod_php html
說到fastCgi就不得不說Cgi。
CGI英文全稱是 Common Gateway Interface,一般翻譯爲共同網關接口,是HTTP服務器與機器上的其餘程序進行通訊的一個接口。這個「其餘程序」可使用任何計算機語言來編寫,它經過CGI這個接口從HTTP服務器取得輸入,而後把運行的結果又經過CGI這個接口交給HTTP服務器,而HTTP服務器把這個結果送給瀏覽器。 python
CGI的出現讓WEB從靜態變爲爲動態,隨着Web的愈來愈普及,不少的網站的都須要有動態的頁面,以便與瀏覽者互交。CGI方式的缺點也愈來愈突出。由於HTTP要生成一個動態頁面,系統就必須啓動一個新的進程以運行CGI程序,不斷地fork是一項很消耗時間和資源的工做。這就出現了FastCGI。 web
百度百科關於FastCGI apache
mod_php就是把PHP作爲APACHE一個內置模塊。讓apache http服務器自己可以支持PHP語言,不須要每個請求就啓動PHP解釋器來解釋PHP。 瀏覽器
第二篇:mod_php or fastcgi性能比較與選擇 安全
用php確定少了不這個問題的選擇,cgi天然就沒必要說了,可是mod_php和fastcgi的爭論確仍是比較多的。
找了一些資料,晾在這,可供參考。
首先,性能應該是你們最關心的問題了,除了mod_php和fastcgi 的 benchmark,還有一些服務器差異的測試,如apache vs lighthttpd 服務器
1 mod_php, LightTPD, FastCGI - What’s fastest?
這個bechmark的結果是 Apache(prefork)+Fastcgi+php的性能是最好的。超過了apache+mod_php,甚至也超過了lightty+fastcgi+php。固然,這個結果得出值相差都很小。另外,以上說的幾個結果都使用了APC加速,使用APC後性能提升1倍以上。 app
2 php4-mod-vs-cgi
這個bechmark是在php4的環境下完成的。其summary.txt的內容以下。 dom
上面的結果我以爲須要關注的是無cache的狀況,由於使用mod_php或fastcgi主要仍是用來生成動態頁面。前面的cache有更好的工具來實現,如squid。因此,這個結果也是fastcgi勝出,相差也不大。
3 http://buytaert.net/drupal-performance?page=1
這個文章的結果和上面兩個恰好相反。使用fastcgi代替mod_php後,」When switching from
to
we observe a 63% slowdown for anonymous visitors, and a 18% slowdown for authenticated visitors.」如下是圖表
另外,benchmark中也作了和lightty的比較,以下圖:
這個文章的結論是Apache+mod_php性能好於Apache+fastcgi。另外,Apache+mod_php略好於lightty+fastcgi。
4 最後看看 fastcgi官方本身怎麼說的吧
Of course, the answer is that it depends upon the application. A more complete answer is that FastCGI often wins by a significant margin, and seldom loses by very much.
5 結論是,仍是根據本身的應用測一下吧….
最後,我的觀點
若是mod_php和fastcgi的性能相差不是很大的話,仍是傾向於fastcgi的,這種方式畢竟更靈活、安全和簡單。
1 使用fastcgi,你的web server 能夠比較簡單的切換,能夠測試不一樣的服務器,Apache,lightty,ngix 等等,不須要有代碼的修改
2 若是想換腳本的實現,如不用php,而是改爲perl,python之類的,web服務器也不須要任何的改動
3 web server和fastcgi能夠用不一樣的賬號運行,帶來了必定的安全隔離
4 只在Apache中編個mod_fastcgi能夠說是簡單多了,把mod_php編進apache時,出問題時很難定位是php的問題仍是apache的問題,我就見過這樣的core,函數調用幾十層,一點頭緒都沒有