首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

解決 IIS FastCGI 處理程序超過活動超時限制 (HTTP 500.0 錯誤)

     編輯:PHP 相關知識

問題現象

在進行大數據並發測試時,IIS 返回 HTTP 錯誤 500.0 - Internal Server Error,詳細信息提示:

FastCGI 進程超過了配置的活動超時時限

這通常發生在 PHP 腳本執行時間超過 IIS FastCGI 默認的 70 秒限制時。

根本原因

IIS 7+ 的 FastCGI 模塊默認設置 活動超時 為 70 秒。當 PHP 處理長時間運行的任務(如大數據導出、報表生成、批量處理)時,進程會被強制終止。

解決方案:調整 IIS FastCGI 設置

  1. 打開 IIS 管理器 (inetmgr)
  2. 在左側連接面板選中服務器節點,雙擊右側 FastCGI 設置 圖標
  3. 在列表中找到 php-cgi.exe 條目,雙擊或右鍵選擇 編輯
  4. 在彈出的對話框中找到 活動超時 項
  5. 將默認值 70 修改為更大值,例如 600 (10 分鐘) 或根據業務需求調整
  6. 點擊確定保存,IIS 會自動應用配置

配置建議

  • 開發/測試環境:可設為 600-3600 秒,方便調試長任務
  • 生產環境:建議 300-600 秒,避免佔用進程過久影響併發
  • 極長任務:考慮使用異步隊列 (如 Redis + Worker、Gearman、Swoole) 而非同步 HTTP 請求

驗證方法

修改後,重新發起長時間請求,確認不再出現 500 錯誤。可在 PHP 中臨時添加 sleep(80) 測試。

相關配置補充

同樣在 FastCGI 編輯對話框中,還可調整:

  • 閒置超時:進程無請求時保持存活的時間,默認 300 秒
  • 最大實例數:控制 php-cgi 進程池大小,根據 CPU 核心數調整
  • 環境變量:如 PHP_FCGI_MAX_REQUESTS 控制進程重生閾值
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved