FcgidBusyScanInterval指令
說明:掃描繁忙超時進程的間隔
語法: FcgidBusyScanInterval seconds
默認:FcgidBusyScanInterval 120
環境: 服務器配置
狀態:外部
對應的老指令:BusyScanInterval
該模塊將執行FcgidBusyTimeout檢查,在此區間。
FcgidBusyTimeout 指令
說明: 殺死處理請求超過FcgidBusyTimeout設置的時間後的FastCGI應用程式
語法: FcgidBusyTimeout seconds
默認:FcgidBusyTimeout 300
環境: 服務器配置,虛擬主機
狀態:外部
對應的老指令:BusyTimeout
這是處理請求的最大時間限制。如果FastCGI請求超過了FcgidBusyTimeou設置的秒數,請求將會終止。而檢查進行的時間將由FcgidBusyScanInterval定義,請求處理在設置的時間內有效。本指令的目的是終止掛起的應用程序。默認的超時時間,可能需要增加應用程序,可以采取更長的時間來處理請求。
<ifmodule mod_fcgid.c>
FcgidBusyScanInterval 120 #與FcgidBusyTimeout對應,每120秒進行一次檢查
FcgidBusyTimeout 300 #超過300秒的fastcgi請求將被終止
</ifmodule>
FcgidConnectTimeout指令
說明: Fastcgi的服務在等待設置的時間參數後超時(Fastcgi連接超時)
語法: FcgidConnectTimeout seconds
默認:FcgidConnectTimeout 3
環境: 服務器配置,虛擬主機
狀態:外部
對應的老指令:IPCConnectTimeout
這是Fastcgi這個模塊在windows中當它試圖連接一個應用的時候設置的一個最大的周期時間,當等待時間超過了這個時間,將會出現超時。(此指令不適應在UNIX)
FcgidErrorScanInterval指令
說明: 在間隔的時間內進行掃描退出掛起的進程
語法: FcgidErrorScanInterval seconds
默認:FcgidErrorScanInterval3
環境: 服務器配置
狀態:外部
對應的老指令:ErrorScanInterval
這是間隔模塊將處理掛起的進程終止。 終止其中已超過FcgidIdleTimeout或FcgidProcessLifeTime任何進程正在等待。
FcgidIdleScanInterval指令
說明: 空閒超時過程的掃描間隔
語法: FcgidIdleScanInterval seconds
默認:FcgidFixPathinfo120
環境: 服務器配置
狀態:外部
對應的老指令:IdleScanInterval
在這個設置的時間間隔內,在該模塊將搜索過程已超過FcgidIdleTimeout或FcgidProcessLifeTime設置的最大有效時間,超過這個時間的進程將會終止。
FcgidIdleTimeout 指令
說明: 空閒的Fastcgi程序在超過設置的時間後將會被殺死
語法: FcgidIdleTimeout seconds
默認:FcgidIdleTimeout 300
環境: 服務器配置
狀態:外部
對應的老指令:IdleTimeout
超過了設置的這個閒置的時間,沒有處理請求的的Fastcgi程序將會被終止.空閒進程的檢查與上面的FcgidIdleScanInterval一起配合使用.
<ifmodule mod_fcgid.c>
FcgidIdleScanInterval 120 #與FcgidIdleTimeout對應,每120秒進行一次檢查
FcgidIdleTimeout 300 #超過300秒的fastcgi空閒進程將被終止
</ifmodule>
FcgidInitialEnv 指令
說明: 將環境變量的值和一些可選值傳給Fastcgi
語法: FcgidInitialEnv name [ value ]
默認:none
環境: 服務器配置
狀態:外部
對應的老指令:DefaultInitEnv
使用FcgidInitialEnv定義環境變量傳遞到FastCGI的應用程序。這個指令可以多次使用
//-------------------------------------------------------//
# php.ini文件位置
FcgidInitialEnv PHPRC "C:/Progra~1/PHP"
//------------------------------------------------------//
# 設置PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi進程在處理完所有請求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
//-------------------------------------------------------//
#windows的path設置
FcgidInitialEnv PATH"D:/usr/local/php5;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
//-----------------------------------------------------//
#操作系統目錄
FcgidInitialEnv SystemRoot "C:/Windows"
//----------------------------------------------------//
#系統盤
FcgidInitialEnv SystemDrive "C:"
//-----------------------------------------------------//
#臨時文件夾
FcgidInitialEnv TEMP "C:/WINDOWS/TEMP"
//----------------------------------------------------//
#存放臨時文件的文件夾
FcgidInitialEnv TMP "C:/WINDOWS/TEMP"
//-----------------------------------------------------//
#操作系統安裝目錄
FcgidInitialEnv windir "C:/WINDOWS"
FcgidProcessLifeTime 。
FcgidIOTimeout 指令
說明: FastCGI的服務器通信超時
語法: FcgidIOTimeout seconds
默認:FcgidIOTimeout 40
環境: 服務器配置
狀態:外部
對應的老指令:IPCCommTimeout
試圖讀或者寫的Fastcgi應用將在設置的時間內等待進行工作,
FcgidFixPathinfo 指令
說明: 鏡像PHP cgi.fix_pathinfo設置
語法: FcgidFixPathinfo 1
默認:FcgidFixPathinfo0
環境: 服務器配置
狀態:外部
對應的老指令:PHP_Fix_Pathinfo_Enable
默認是不支持pathinfo模式,只支持普通的url訪問模式,如果在這裡用了這個指令,將會用到php.ini裡面的設置,如下:
cgi.fix_pathinfo=1
pathinfo模式指非傳統的URL訪問模式,如偽靜態,rewrite
FcgidMaxProcesses 指令
說明: php-cgi最大的進程數
語法: FcgidMaxProcesses value
默認:FcgidMaxProcesses 1000
環境: 服務器配置
狀態:外部
對應的老指令:MaxProcessCount
這個指令設置了在運行程序的時候可以一次性激活最大數量的FastCGI進程。你有更多的RAM,您可以設定值越高。
FcgidMaxProcessesPerClass指令
說明: 每個虛擬主機可以最大開啟多少個FCGI進程
語法: FcgidMaxProcessesPerClass value
默認:FcgidMaxProcessesPerClass 100
環境: 服務器配置
狀態:外部
對應的老指令:DefaultMaxClassProcessCount
默認為100,每台虛擬主機可以最大可以開啟100個Fastcgi進程,即單一的客戶可以有100 PHP同時服務請求。我會建議值從8到20。注:如果有更多的請求在同一時間,他們將被排隊,而不是拒絕。(值的大小不能大於FcgidMaxProcesses設置的值)
FcgidMinProcessesPerClass指令
說明: 與FcgidMaxProcessesPerClass相反
語法: FcgidMaxProcessesPerClass value
默認:FcgidMaxProcessesPerClass3
環境: 服務器配置
狀態:外部
應始終為0
FcgidMaxRequestInMem指令
說明: 每個請求保存在內存中的最大尺寸
語法: FcgidMaxRequestInMem bytes
默認:FcgidMaxRequestInMem 65536
環境: 服務器配置
狀態:外部
該模塊從客戶端讀取整個請求體,然後將其發送到應用程序。 通常情況下,在請求體將被存儲在內存中。 一旦從客戶端讀取請求體的量超過FcgidMaxRequestInMem設置的字節,請求體中的其余部分將被存儲在臨時文件中。
FcgidMaxRequestLen 指令
說明: Http請求的最大長度
語法: FcgidMaxRequestLen bytes
默認:FcgidMaxRequestLen 131072
環境: 服務器配置
狀態:外部
如果Http請求大小超過這一數額,請求將失敗, 將出現500 Server Error。的錯誤 ,一般在上傳文件的時候出現.
警告:在2.3.6以前默認是1GB,現在默認是128K, 用戶應該使用這個指令設置更合理的限制.例如我使用的2.3.6,就應該用這個參數進行設置可以上傳更大的數據。
FcgidMaxRequestsPerProcess指令
說明: php-cgi每個進程的最大請求數
語法: FcgidMaxRequestsPerProcess value
默認:FcgidMaxRequestsPerProcess 0
環境: 服務器配置,虛擬主機
狀態:外部
FastCGI應用程序進程處理請求的最大數目。 值0禁止檢查。
FcgidOutputBufferSize指令
說明: CGI輸出緩沖區的大小
語法: FcgidOutputBufferSize bytes
默認:FcgidOutputBufferSize 65536
環境: 服務器配置,虛擬主機
狀態:外部
設置cgi緩沖區的大小.
FcgidProcessLifeTime指令
說明: CGI進程的生存時間
語法: FcgidOutputBufferSize bytes
默認:FcgidOutputBufferSize 65536
環境: 服務器配置,虛擬主機
狀態:外部
大於這個時間空閒的已經存在的PHP-CGI進程將被終止,如果進程數量超過FcgidMinProcessesPerClass的設置 。 值0禁止檢查。這個過程中的生存時間進行檢查上面的頻率配置的FcgidIdleScanInterval。
FcgidSpawnScoreUpLimit指令
說明: 允許進程生成速度的控制值
語法: FcgidSpawnScoreUpLimit value
默認:FcgidSpawnScoreUpLimit 10
環境: 服務器配置
狀態:外部
生成速度控制值。當一個進程產生或終止,此數值會增加,並且隨著時間的推移而減少增加的程度;當此數值高於FcgidSpawnScoreUpLimit時,正在產生的進程會稍停一會,只到現有的進程空閒或FcgidSpawnScoreUpLimit的值低於設定的值。此數據越高,生成進程的速度將越快。
FcgidSpawnScore 指令
說明: 進程生成速度的權重
語法: FcgidSpawnScore value
默認:FcgidSpawnScore 1
環境: 服務器配置
狀態:外部
生成速度權重。對每一個進程來講,這個數值會加上生成速度控制值(FcgidSpawnScoreUpLimit)。這個值越大,CGI生成速度越快。
FcgidTerminationScore指令
說明: 增加每個終止進程活動的值
語法:FcgidTerminationScore value
默認:FcgidTerminationScore 2
環境: 服務器配置
狀態:外部
消亡權重。這個值越大,CGI進程生成速度越慢。
FcgidTimeScore 指令
說明: 減去進程活動的值的的每一秒(設置的值)
語法:FcgidTimeScore value
默認:FcgidTimeScore 1
環境: 服務器配置
狀態:外部
值越高,進程的生產率就越高。
FcgidWrapper 指令
說明: CGI程序位置的設置
語法:FcgidWrapper command [ suffix ] [ virtual ]
默認:none
環境: 服務器配置
狀態:外部
一般用來指定php-cgi路徑
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
FcgidWrapper "C:/Progra~1/PHP/php-cgi.exe"
</IfModule>
FcgidZombieScanInterval指令
說明: 僵屍進程的掃描間隔
語法:FcgidZombieScanInterval seconds
默認:FcgidZombieScanInterval 3
環境: 服務器配置
狀態:外部
掃描僵屍進程的時間間隔。
FastCgi基本配置
下面是一個最基本的FastCgi配置
將mod_fcgid.so復制到Apache安裝目錄下面的modules文件夾,打開httpd.conf,添加下面內容(位置任意):
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi .php
# php.ini文件位置
FcgidInitialEnv PHPRC "C:/Progra~1/PHP"
# 設置PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi進程在處理完所有請求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
# php-cgi每個進程的最大請求數
FcgidMaxRequestsPerProcess 1000
# php-cgi最大的進程數
FcgidMaxProcesses 5
# 最大執行時間
FcgidIOTimeout 120
FcgidIdleTimeout 120
#php-cgi路徑
FcgidWrapper"C:/Progra~1/PHP/php-cgi.exe"
# Define the MIME-Type for".php" files
AddType application/x-httpd-php .php
#定義cgi請求的長度
FcgidMaxRequestLen 1500000
</IfModule>
附:
1. AddHandler指令
說明:在文件擴展名與特定的處理器之間建立映射
AddHandler fcgid-script .fcgi .php
上面語句的解釋是:一旦將上述定義放在你的http.conf文件中,所有包含.fcgi,.php擴展名的文件,都會被當成是FCGID程序。
2. AddType 指令
說明:在給定的文件擴展名與特定的內容類型之間建立映射
AddType application/x-httpd-php .php
上面語句的解釋是:一旦將上述定義放在你的http.conf文件中,所有包含.php擴展名的文件,都會被當成是PHP類型的程序。