httpd.exe: Syntax error on line 115 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf:
Cannot load C:/PHP5/php5apache2.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
核心原因:Apache 2.2 引入新模組 API,需 php5apache2_2.dll,而 PHP 5.1.x 官方釋出僅包含 php5apache2.dll (給 Apache 2.0.x 用)。版本不匹配導致載入失敗。
php5apache2_2.dll,完美支援 Apache 2.2。E_STRICT、register_globals、magic_quotes 相關代碼。php-5.2.17-Win32.zip)。php5apache2_2.dll 複製到 PHP 5.1.x 目錄(覆蓋或並存)。httpd.conf:LoadModule php5_module "C:/PHP5/php5apache2_2.dll"
phpinfo() 顯示 Apache 2.2 Handler。風險:極少數擴展 (如舊版 Zend Optimizer、ionCube) 可能因 PHP 核心版本差異失效,需實測。
若方案二後仍報 Side-by-Side configuration incorrect 或 MSVCR80.dll 缺失:
vcredist_x86.exe)。php5apache2.dll-php5.1.x.rar 含 httpd.exe.manifest),將 manifest 放入 Apache bin/ 目錄。| 項目 | 指令/操作 | 預期結果 |
|---|---|---|
| 語法檢查 | httpd -t | Syntax OK |
| 模組載入 | httpd -M | findstr php | php5_module (shared) |
| phpinfo() | 瀏覽 https://localhost/phpinfo.php | Server API: Apache 2.2 Handler |
| 腳本執行 | 建立 | 顯示 OK |
Apache 2.2 + PHP 5.1.x 本質是模組 API 版本不匹配。方案一(升級 PHP)是正道,方案二(替換 dll)是權宜之計,方案三/四為補充。2024 年仍在跑 PHP 5.1 的生產系統屬於重大安全隱患,請納入技術債清理計劃,儘快遷移至 PHP 8.x + Apache 2.4 / Nginx + PHP-FPM 現代架構。