向ISP租用虛擬主機商租用空間準備架設網站,但登入cPannel後有個設定讓我不
知所措。就是PHP的選項設定,竟然有FastCGI、SuPHP、Mod-PHP、PHP-FPM
、...。用google找了很多,大多是隻字片語簡單帶過,沒有比較具體條理式的
詳細說明。看了半天還是不瞭解其中的差異關鍵,還請站上高手指點。
CGI : 通用型的 Web 外部程式呼叫。優點:任何語言都能用,缺點:慢
FastCGI : 把外部程式常駐在記憶體,以解決 CGI 速度慢的缺點。
mod_PHP : 把 php 解譯器整合到 apache 中,以解決呼叫外部程式速度慢的問題。不過缺點是執行檔變肥了。
PHP-FPM : 類似 FastCGI,不過它自行管理服務數量,更穩定也更快速。
不知道該選什麼,就選 PHP-FPM 吧。至於 suPHP 是允許 PHP 可以提高權限,執行原本沒權限可以執行的功能 (比如變身成 root)。
他一定是遇到主機商忘了鎖了
一般租虛擬主機, 後台是cPanel的
PHP的模式都是鎖住, 不給改的
依照上述說明,架在虛擬主機商的網站,一般大概只會選用 PHP-FPM、FastCGI 。
可以作這樣的理解?
目前絕大多數的 apache 搭配 php,應該都還是 mod_php 的模式。因為 Linux 裡的 LAMP 預設就是裝成這種模式。相信會自己調整成 php-fpm 或 FastCGI 的 MIS 並不多。
不好意思,借此討論發問問題,
如何看出現在主機商安裝的是哪一種呢?
在虛擬主機的控制台中,效能和安全性都關系重大的一件事,就是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的設定也比較複雜。