一般情況下,在apache 下要用 php程式是透過mod_php模組來運作

mod_php對我來說明顯的缺點有

1。程式上傳的檔案權限會是 apache:apache
2。再來就是效能小差吧!!
3。apache 執行程序都是apache 這個使用者

而 cgi = common gateway interface ,是與 web 伺服器溝通的一個介面

不過本身cgi也有缺點,所以apache 有個 Server API 這東西,與它結合的應用程式可以有較高的效率

fastcgi 的產生也是為了有再高的效率

fastcgi 它的好處是
1。一個程序可以重複處理好幾個需求
2。更高的效能
3。其它

先來區分清楚  mod_fastcgi 與 mod_fcgid 是不同的

mod_fcgid 是這個 http://httpd.apache.org/mod_fcgid/ (apache 自家開發的)

mod_fastcgi 是這個 http://www.fastcgi.com/

目前只玩過 mod_fcgid

1。程序在跑時是使用 User呈現
2。檔案的上傳也是User
3。這對如果是有很多virtual host 時,是個很讚的功能
4。比方說主機負載高時可以在top上馬上看到誰的CPU最高
5。php程式上傳時就是User,不再對是不是apache還要把它改成User,或是權限要改成 777 等之類的

mod_fastcgi 則對它還不熟
只知道
1。它可以再搭配 php-fpm (http://php-fpm.org/) 有更好的管理效能
2。對於有高負載需求的
3。再搭配 apache 用 worker 模式 (多行程、多執行緒運作),就比較讚,(/etc/sysconfig/httpd 取消註解HTTPD=/usr/sbin/httpd.worker)
4。可以使用 Unix Socket 、 TCP 與 web server 連接

比較一下 prefork 與 worker

這兩個都是apache 的 MPM (Multi-Processing Module),讓apache 多重處理器的方式來處理request

prefork
1。pre-forking (預載分流)

worker
1。Multi-thread (多重執行緒)
2。適合在多核心的CPU

 

http://www.pigo.idv.tw/archives/827
http://home.educities.edu.tw/shirock/comp/fastcgi.htm
http://www.arthurtoday.com/2009/11/apache-mpm-worker-prefork.html

Related posts 相關文章
Plesk 的 PHP FastCGI 出現 Premature end of script headers 問題
More...
使用 php-fpm 管理 PHP / FastCGI 程序-安裝
More...
perl 用 CGI 寫網頁程式
More...
apache mod_deflate 與 mod_fastcgi 搭在一起產生問題~慢
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。