在 IIS 6 + FastCGI 環境執行 PHP 長時間腳本(如大量資料匯入、報表產生)時,常遇到錯誤:
The FastCGI process exceeded configured request timeout
或 FastCGI process exceeded configured activity timeout
C:\WINDOWS\system32\inetsrv\fcgiext.ini[PHP]` 區段下新增/調整以下參數:[Types]
php=PHP
[PHP]
ExePath=C:\PHP\php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=500
ActivityTimeout=900
| 參數 | 單位 | 預設值 | 建議值 | 用途 |
|---|---|---|---|---|
| RequestTimeout | 秒 | 90 | 300-600 | 單一請求最大執行時間 |
| ActivityTimeout | 秒 | 30 | 300-900 | 進程無輸出/無活動的最大等待時間 |
| InstanceMaxRequests | 次 | — | 10000 | 單一 php-cgi 進程處理請求上限,防記憶體洩漏 |
| PHP_FCGI_MAX_REQUESTS | 次 | — | 10000 | PHP 內建進程回收機制配合 |
max_execution_time(預設 30 秒)。