iT邦幫忙

0

FastCGI、SuPHP、Mod-PHP、PHP-FPM、...。各種不同PHP的差異在那?

  • 分享至 

  • xImage

向ISP租用虛擬主機商租用空間準備架設網站,但登入cPannel後有個設定讓我不
知所措。就是PHP的選項設定,竟然有FastCGI、SuPHP、Mod-PHP、PHP-FPM
、...。用google找了很多,大多是隻字片語簡單帶過,沒有比較具體條理式的
詳細說明。看了半天還是不瞭解其中的差異關鍵,還請站上高手指點。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

16
wiseguy
iT邦超人 1 級 ‧ 2014-02-21 16:37:04
最佳解答

CGI : 通用型的 Web 外部程式呼叫。優點:任何語言都能用,缺點:慢
FastCGI : 把外部程式常駐在記憶體,以解決 CGI 速度慢的缺點。
mod_PHP : 把 php 解譯器整合到 apache 中,以解決呼叫外部程式速度慢的問題。不過缺點是執行檔變肥了。
PHP-FPM : 類似 FastCGI,不過它自行管理服務數量,更穩定也更快速。

不知道該選什麼,就選 PHP-FPM 吧。至於 suPHP 是允許 PHP 可以提高權限,執行原本沒權限可以執行的功能 (比如變身成 root)。

看更多先前的回應...收起先前的回應...
player iT邦大師 1 級 ‧ 2014-02-21 22:09:02 檢舉

他一定是遇到主機商忘了鎖了
一般租虛擬主機, 後台是cPanel的
PHP的模式都是鎖住, 不給改的

依照上述說明,架在虛擬主機商的網站,一般大概只會選用 PHP-FPM、FastCGI 。
可以作這樣的理解?

wiseguy iT邦超人 1 級 ‧ 2014-03-03 11:30:06 檢舉

目前絕大多數的 apache 搭配 php,應該都還是 mod_php 的模式。因為 Linux 裡的 LAMP 預設就是裝成這種模式。相信會自己調整成 php-fpm 或 FastCGI 的 MIS 並不多。

不好意思,借此討論發問問題,
如何看出現在主機商安裝的是哪一種呢?

fillano iT邦超人 1 級 ‧ 2014-03-03 14:09:19 檢舉

寫一隻簡單的php程式:
[code]
<?php
phpinfo();
[code]
前幾行資訊應該就有:「Server API」。
mod_php應該會顯示「Apache X.X Handler」
FPM/FastCGI會顯示「FPM/FastCGI」等等。

fillano iT邦超人 1 級 ‧ 2014-03-03 14:10:04 檢舉

忘了一條斜線XD

&lt;pre class="c" name="code">&lt;?php
phpinfo();

原來phpinfo就能看到,實在感謝 @fillano

4
unethost
iT邦新手 4 級 ‧ 2014-02-26 00:55:03

在虛擬主機的控制台中,效能和安全性都關系重大的一件事,就是php handler的選擇。可以說是每一種handler都各有其特色。

(1) CGI是最古老的handler,因為最古老,也沒有什麼過人的長處。不快也不太安全。
(2) suphp是最慢的handler,但是它在安全性上其長處。如果使用者的檔案或是資料夾的權限設定太過寬鬆,suphp都會丟出error。可以說是超級嚴謹,一絲不苟。
(3) mod_php是最快的handler,因為它直接嵌入apache中,做為apache的module來執行。也因此,mod_php在執行網頁時,使用的是nobody這個user,而並非是php檔案的擁有者。所以mod_php並不太安全。
(4) fastcgi可以說是有各家之所長,速度上不輸給mod_php,又像suphp一樣,可以用php檔案擁有者的身分來執行。唯一的缺點就是fastcgi的設定也比較複雜。

我要發表回答

立即登入回答