雖然 LAMP 架構流行,但在需要同時支持 PHP、ASP、ASP.NET、JSP 的 Windows 共享主機環境中,IIS 6.0 (Windows Server 2003) 仍是經典選擇。本文提供一套經過生產驗證的 PHP ISAPI 配置方案,特點:首次配置後,升級 PHP 版本只需替換文件並重啟 IIS,無需修改任何配置。
# 解壓到系統盤根目錄(假設 C: 為系統盤)
C:\php
C:\php\dlls
C:\php\extensions
C:\php\sapi
「我的電腦」→「屬性」→「高級」→「環境變量」→「系統變量」→編輯 Path,在最前面添加:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
關鍵優勢:將 PHP 目錄加入系統 PATH,避免將 DLL 複製到 System32,升級時只需替換 C:\php 目錄。
# 複製生產環境配置模板
copy C:\php\php.ini-dist C:\Windows\php.ini
# 關鍵修改項
extension_dir = "C:\php\extensions"
session.save_path = "C:\php\sessions" # 需預先創建目錄,或使用 RAM Disk 加速
# 啟用常用擴展(去掉前面分號)
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_curl.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
# ... 根據項目需求啟用
「Internet 信息服務管理器」→「Web 服務擴展」→「添加新的 Web 服務擴展」
PHP ISAPI ExtensionC:\php\sapi\php5isapi.dll (PHP 5.x)「網站」→右鍵「屬性」→「ISAPI 篩選器」→「添加」
PHPC:\php\sapi\php5isapi.dll「網站」→「屬性」→「主目錄」→「應用程序設置」→「配置」→「應用程序擴展」→「添加」
C:\php\sapi\php5isapi.dll.phpHEAD,GET,POST「文檔」→「啟用默認內容文檔」→「添加」→ index.php
# 命令行重啟(推薦)
iisreset /restart
在網站根目錄創建 phpinfo.php:
<?php phpinfo(); ?>
瀏覽器訪問 https://your-server/phpinfo.php,顯示 PHP 配置信息即成功。
# 下載對應版本
ZendOptimizer-3.3.9-Windows-i386.exe
# 安裝向導中指定 php.ini 路徑:C:\Windows\php.ini
# 安裝完成後自動在 php.ini 末尾添加 Zend 配置
# 重啟 IIS 生效
當需要升級 PHP(如 5.3.10 → 5.3.28,或 5.4.x 間升級)時:
C:\php 目錄(或重命名備份)C:\phpiisreset無需修改: php.ini、環境變量、IIS 映射、System32 文件。因為所有路徑指向固定的 C:\php,版本升級對上層透明。
| 配置項 | 建議值 | 說明 |
|---|---|---|
| expose_php | Off | 隱藏 PHP 版本信息 |
| display_errors | Off | 生產環境不顯示錯誤詳情 |
| log_errors | On | 錯誤寫入日志文件 |
| error_log | C:\php\logs\php_error.log | 指定錯誤日志路徑 |
| open_basedir | C:\Inetpub\wwwroot;C:\php\sessions | 限制 PHP 可訪問目錄 |
| disable_functions | exec,passthru,shell_exec,system,proc_open,popen | 禁用危險函數 |
| session.cookie_httponly | 1 | 防 XSS 竊取 Session |
| session.cookie_secure | 1 (僅 HTTPS) | 僅 HTTPS 傳輸 Cookie |
C:\php\logs\php_error.log 或 Windows 事件查看器extension_dir 路徑正確、DLL 文件存在、版本匹配(VC6/VC9、TS/NTS)IUSR_ 和 IIS_WPG 對 C:\php、網站目錄、Session 目錄有讀/執行權限Windows Server 2003 已停止主流支持(2015 年 7 月),IIS 6.0 也不再獲得安全更新。強烈建議規劃遷移至:
本文方案適用於維護舊系統的過渡期。新項目請直接採用現代技術棧,獲得長期支持與安全保障。