使用 mod_fcgid 而不是 mod_php

使用 mod_fcgid 而不是 mod_php

我該怎麼做才能在 ubuntu 和 centos 上使用 mod_fcgid 而不是 mod_php 。兩者之間的主要優點和差異是什麼

答案1

mod_php:

  • 比 mod_fcgid 快一點
  • 在httpd進程下運行
  • 可以存取 apache api ( de.php.net/manual/en/ref.apache.php )
  • 不適合共享託管,因為所有網域都在同一用戶下運行

mod_fcgid:

  • 腳本在您想要的用戶下運行(適合共享託管)
  • 增強安全性
  • 不僅僅可以運行 php
  • 你可以運行多個 php 版本,分別是 php4、php5、php5.1、php5.2、php 5.3

答案2

在我的共享託管平台上,我使用 FastCGI 來運行 PHP,而不是直接呼叫它。他們默認透過 CGI 運行 PHP,而不是作為模組運行,所以對我來說,只需將以下內容添加到我的.htaccess檔案中即可:

 AddHandler application/myphp .php
 Action application/myphp /cgi-bin/myphp.fcgi

接下來,我必須myphp.fcgi在 cgi-bin 目錄中建立包含以下內容的腳本:

#!/bin/sh

# This ensures PHP doesn't try to run it's own
# process manager.
export PHP_FCGI_CHILDREN=0

# Replace this shell image with a PHP
# image.
exec /path/to/php -c /path/to/my/php.ini

這對我來說運行完美,我的託管環境在硬體負載平衡器後面的近十幾台伺服器的叢集中運行。

答案3

cgi = 每個請求啟動一個程序並將結果傳回給客戶端 fcgi = 應用程式(例如 Ruby/Django)或解釋器 (PHP) 保持運行,網頁伺服器轉送請求並從中取得回應。

FastCGI 幾乎總是更快(對於支持它的東西),但是一些非常古老的東西(例如 nagios)需要 cgi。 cgi 的唯一真正優勢是,在沒有流量腳本的情況下,cgi 應用程式不使用內存,但通常網絡伺服器足夠智能,可以關閉一段時間不使用的 FastCGI 應用程序,因此這不是真正的優勢

相關內容