在 Windows 環境部署 Apache + PHP 時,若安裝路徑包含空格(如 C:\Program Files\PHP),Apache 的 LoadModule 指令若未正確加上引號,將導致服務無法啟動。本文記錄真實排查過程與解決方案。
Apache 設定檔 httpd.conf 中載入 PHP 模組:
LoadModule php5_module C:/Program Files/php/php5apache2_2.dll
PHPIniDir "C:/Program Files/php"
執行 httpd -k start 或啟動服務時失敗,錯誤日誌提示模組載入失敗或語法錯誤。
Apache 設定檔解析器以空格分隔參數。路徑 C:/Program Files/php/... 中的空格會被誤判為參數分隔符,導致 LoadModule 只讀取到 C:/Program,其餘被視為無效參數。
LoadModule php5_module "C:/Program Files/php/php5apache2_2.dll"
PHPIniDir "C:/Program Files/php"
LoadModule php5_module C:/Progra~1/php/php5apache2_2.dll
PHPIniDir "C:/Progra~1/php"
可用 dir /x 查看短檔名。
將 PHP、Apache 安裝至無空格路徑,如 D:\PHP、D:\Apache,完全規避問題。
httpd.conf 後,執行 httpd -t 測試語法:Syntax OK 表示通過。logs/error.log 是否無異常。phpinfo.php 確認 PHP 模組正常載入。/,避免反斜線轉義問題。PHPIniDir 指令的路徑務必以斜線結尾:"C:/Program Files/php/"。Program Files、Program Files (x86) 等系統保護目錄,權限管理較麻煩。php7apache2_4.dll 或 php8apache2_4.dll,對應 Apache 2.4 版本。這是一個經典的「引號引發的悲劇」,記住:Windows 路徑含空格時,Apache 設定檔所有路徑參數必須用雙引號包裹,即可避免 90% 的啟動失敗案例。