導航:首頁 > 文件管理 > fastcgi配置文件

fastcgi配置文件

發布時間:2025-06-14 02:29:10

『壹』 如何優化windows+IIS67環境下FastCGI配置方法

windows2003+IIS6如何中優化FastCGI配置方法
FastCGI優化配置文件fcgiext.ini,它在%windir%\system32\inetsrv里。我們將嘗試用兩種辦法進行配置:FastCGI管理腳本fcgiconfig.js;記事本編輯fcgiext.ini。
腳本配置FastCGI
打開你的命令行cmd.exe,切換到目錄 %windir%\system32\inetsrv。復制下面內容,回車執行以下即可完成。請根據需要設置後面的參數。
1 cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:5000
2
3 cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:5000
4
5 cscript fcgiconfig.js -set -section:"PHP" -RequestTimeout:360
6
7 cscript fcgiconfig.js -set -section:"PHP" -ActivityTimeout:120
腳本的含義,分別是:
設置應用程序池回收。FastCGI進程請求數達到InstanceMaxRequests數值5000,應用程序池將自動回收。默認值是1000。
當環境變數PHP_FCGI_MAX_REQUESTS達到10000將自動回收應用程序池。
RequestTimeout 設置請求超時時間,也就是請求允許的最大時間,如果FastCGI進程請求超過此設置將被禁止,值是90秒。
ActivityTimeout 指定FastCGI進程請求的最大活躍時間,在設定時間內,FastCGI進程和IIS沒有通信,將終止進程。默認值是70秒。

注意:腳本命令是全局設置,針對伺服器上所有以FastCGI運行的PHP網站。因此對於多站點的虛擬機來說,InstanceMaxRequests設置成PHP網站數X500相對理想。
500是變數。如果有10個網站,那麼200X50=5000,類推。流量大的伺服器,數值設置過小頻繁回收應用程序池,並不是什麼明智的做法。——雖然,系統回收了不少資源。
RequestTimeout數值過大,無疑將讓更多消耗系統資源的請求運行;ActivityTimeout設置為120秒不活動就斷開好,還是30秒不活動就斷開好,因人而異。
復制粘貼適合懶人
FastCGI配置文件fcgiext.ini設置
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=360
ActivityTimeout=120
把上面代碼復制到fcgiext.ini的末尾,保存就好了。
PHP5.3.6的優化配置
PHP5.3.6的php.ini配置也分為兩部分:關於FastCGI的配置;關於PHP本身的配置。我的PHP5.3.6安裝在C:\PHP。
PHP.ini關於FastCGI部分
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
PHP.ini關於自身的部分
一、搜索extension_dir,去掉前面注釋逗;地,修改成:
1 extension_dir = "c:/php/ext"
二、搜索date.timezone,去掉前面注釋逗;地,修改成:
1 date.timezone = "asia/shanghai"
三、搜索下面,然後去掉前面的注視逗;地
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
如此這般你的PHP基本可以暢通無阻了。至於一些更高級的修改,我們沒有必要研究那麼深,不是嗎?
windows 2003+IIS6中優化fastcgi配置文件fcgiext.ini,減少php-cgi.exe進程數量和所佔內存大小
本來聽說fastcgi比isapi好就在伺服器中裝上了,配置環境為windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,經過與很長一段時間觀察,發現工作在FastCGI模式下的PHP會佔用越來越多的內存,訪問量稍微多點php-cgi進程就多了N個,同樣情況下能比原來用isapi模式的時候多出幾百M,我的伺服器內存只有2G傷不起啊。
我在網上搜索了一下,發現還有不少人面臨同樣的問題。來自PHP官方的一個比較正式的解釋是:php-cgi進程並沒有內存泄漏,php-cgi會在每個請求結束的時候回收腳本使用的全部內存,但是並不會釋放給操作系統,而是繼續持有以應對下一次PHP請求。這樣做大概是為了減少內存碎片化或者解決從系統申請內存之後又釋放回操作系統所需要的時間不可控問題。可是如果偶然一次PHP請求使用了諸如ftp或者zlib這樣的大內存操作,那麼將導致一大塊系統內存被php-cgi持續佔有,不能被利用。
解決這個問題的辦法是在web伺服器配置中優化fastcgi配置文件參數。
在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中可以設定php-cgi進程相關參數,如:
[Types]
php = PHP
[PHP]
ExePath=C:\php-5.3.8-nts-Win32-VC9-x86\php-cgi.exe
maxInstances=100
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=600
ActivityTimeout=900
在上面的配置中:
ExePath 指定了FastCGI解析程序的路徑,
instanceMaxRequests 指定了每個實例可以處理的最大請求數,
maxInstances 指定可以啟動的最大實例數目,
EnvironmentVars 創建了一個環境變數 PHP_FCGI_MAX_REQUESTS ,默認值設為10000,
requestTimeout 指定了請求的超時時間為600秒,
activityTimeout 指定了活動會話超時時間為900秒。
一下是建議值:
maxInstances=
把這個值改小
建議
512M 內存的改maxInstances=50
1G 內存的改maxInstances=80
2G 內存的改maxInstances=140
再修改
InstanceMaxRequests=
把這個值改小
建議
512M 內存的改InstanceMaxRequests=200
1G 內存的改InstanceMaxRequests=300
2G 內存的改InstanceMaxRequests=500
改完, 重啟IIS。
instanceMaxRequests PHP_FCGI_MAX_REQUESTS 這兩個參數決定了一個php-cgi進程被創建出來之後,最多接受的PHP請求數,在lighttpd中默認配置是10000。也就是說這個php-cgi進程每接受10000次PHP請求後會終止,釋放所有內存,並重新被管理進程啟動。如果把它降低,比如改成100,那麼php-cgi重啟的周期會大大縮短,偶然的高內存操作造成的問題影響時間也會縮短。
maxInstances 這個參數指定可以啟動的最大實例數目,即php-cgi.exe進程的數目。如果把它降低,比如改成100,那麼在任務管理器的進程中最多隻有php-cgi.exe進程,php-cgi.exe所佔用的總內存將大大減少。
我現在用的伺服器為windows 2003操作系統,4G內存,一個php-cgi.exe程序佔用7-25M內存,我把maxInstances值調為300,減少了php-cgi.exe進程的總數量,佔用內存也減小了,反應速度比以前快了不少,至少調整到多少,可根據您的站點訪問量來決定。

閱讀全文

與fastcgi配置文件相關的資料

熱點內容
永安ps九折型材文件袋 瀏覽:420
gn137文件管理 瀏覽:58
java變數類型判斷 瀏覽:500
沈陽在線編程課哪個比較好 瀏覽:373
系統注冊表文件windows無法載入 瀏覽:699
java中2222222222 瀏覽:583
撥號錯誤代碼720 瀏覽:460
599體育數據模型怎麼看不見了 瀏覽:903
國產資料庫性能 瀏覽:714
什麼樣的app計算路程 瀏覽:501
文件保存桌面被改名 瀏覽:392
richtext代碼怎麼寫 瀏覽:111
檢測不到金稅盤版本號 瀏覽:546
中興zxa10f411升級 瀏覽:839
奇跡加攻加防代碼 瀏覽:194
js導出excel數據格式 瀏覽:352
小米手機怎麼設置支付寶網路 瀏覽:536
安卓系統文件修復器下載 瀏覽:820
中國的大數據都是存在哪裡 瀏覽:978
excel大數據如何設計金額 瀏覽:491

友情鏈接