從 Apache+PHP 轉向 IIS+FastCGI,文檔卻滿坑。本文記錄作者親歷的「九曲十八彎」:ISAPI 方案在 PHP 5.3+ 已廢棄、官方 Web Platform Installer 下載鏈接失效、FastCGI 組件缺失等問題,最終提煉出**十步可復現**的標準部署流程,助你一次成功。
為什麼選 FastCGI?
- 常駐進程模型:啟動後持續運行,無需每請求 fork,性能遠超 CGI
- 分佈式能力:PHP 進程可部署在獨立服務器,通過網絡接收請求
- 穩定/安全/可擴展:進程隔離、請求隊列、自動重啟機制
- PHP 5.3+ **強制要求** FastCGI,ISAPI 方案已從源碼移除
踩坑回顧(避免重蹈覆轍)
- ISAPI 方案失效:PHP 5.3+ 無
php5isapi.dll,僅有 php5nsapi.dll(Netscape 專用),IIS 6/7 均無法用 ISAPI 加載
- 官方 FastCGI 下載頁 404:
https://www.iis.net/downloads/microsoft/fastcgi-for-iis 導向的 FastCGIIS6.exe 已下架
- Web Platform Installer (Web PI) 報錯:提示「產品不存在」,多次重試無效
- 手動複製文件法不可靠:網上教程要求
C:\WINDOWS\system32\inetsrv 下出現五個特定文件,實測不存在
十步標準部署流程(經驗證可用)
步驟 1:打開 Web Platform Installer
訪問微軟官方入口:https://www.iis.net/downloads/microsoft/fastcgi-for-iis

步驟 2:選擇 IIS 7 版本

步驟 3:嘗試直接下載 FastCGIIS6.exe(將失敗)

步驟 4:確認「產品不存在」提示

步驟 5:關鍵轉折 — 搜索框輸入「FastCGI」

Web PI 會自動檢索**當前可用**的 FastCGI 組件並列出。
步驟 6:自動下載安裝,完成後打開 IIS 管理器
路徑:右鍵「計算機」→「管理」→「服務和應用程序」→「Internet Information Services (IIS) 管理器」

步驟 7:點擊「FastCGI 設置」圖標

步驟 8:查看已註冊的 FastCGI 應用程序
此處應顯示 PHP 可執行文件路徑(如 C:\php\php-cgi.exe)、參數、實例數等配置。

步驟 9:創建 phpinfo.php 驗證
<?php
phpinfo();
?>
放置於網站根目錄(如 C:\inetpub\wwwroot\)。

步驟 10:瀏覽器訪問驗證
輸入 https://localhost/phpinfo.php 或 https://127.0.0.1/phpinfo.php,顯示經典 PHP 信息頁面即成功。

核心配置要點(安裝後必檢)
| 配置項 | 推薦值 | 說明 |
| Instance MaxRequests | 10000 | 單進程處理請求數上限,防內存洩漏自動回收 |
| Activity Timeout | 70 | 秒,請求處理超時 |
| Request Timeout | 90 | 秒,隊列等待超時 |
| Max Instances | CPU 核心數 × 2 | 並發進程數上限 |
| Environment Variables | PHP_FCGI_MAX_REQUESTS=10000 | 傳遞給 PHP-CGI 進程 |
PHP 5.6 專用 php.ini 關鍵設置
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
date.timezone = "Asia/Shanghai"
extension_dir = "ext"
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_gd2.dll
extension=php_curl.dll
extension=php_openssl.dll
總結
IIS + PHP 部署的核心邏輯是:**Web PI 安裝 FastCGI 模塊 → IIS 註冊 PHP-CGI 應用 → 處理程序映射綁定 *.php → php.ini 調優**。
關鍵經驗:不要信舊教程的具體下載鏈接,直接在 Web PI 內搜索「FastCGI」安裝當前可用版本。微軟已將 FastCGI 納入 IIS 核心組件,Web PI 會自動匹配你的 IIS 版本下載正確包。
完成上述十步,你將擁有一套生產級的 IIS 7.5 + PHP 5.6 FastCGI 環境,支援高併發、自動進程管理、優雅重啟,性能媲美 Nginx+PHP-FPM。
- 上一篇文章: C# 與 VB.NET 除法運算符差異深度解析:/、\、Mod、取整行為
- 下一篇文章: iTerm2 快捷鍵完整速查表:分頁、分割、熱鍵、自動完成、剪貼板歷史與配色
Copyright ©
程式碼之家 All Rights Reserved