雖然現代開發多使用 Docker、XAMPP、Laragon 等整合包,但理解手動安裝配置過程有助於排查環境問題、客製化模組、掌握生產部署細節。本文記錄在 Windows 7/XP 上安裝 Apache 2.4 + PHP 5.4(VC9 TS 版)的完整步驟。
httpd-2.4.4-win32.zip (官方 ApacheHaus 或 Apache Lounge)php-5.4.15-Win32-VC9-x86.zip (VC9 Thread Safe 版,PHP For Windows Archives)關鍵: VC9 TS 版已內建 php5apache2_4.dll,無需另行下載連接器。
D:\Program Files\Apache2.4\ <- Apache 根目錄
D:\Program Files\PHP5.4\ <- PHP 根目錄
E:\www\ <- 網站根目錄
編輯 D:\Program Files\Apache2.4\conf\httpd.conf:
ServerRoot "D:/Program Files/Apache2.4"
取消下列模組前的 #:
LoadModule rewrite_module modules/mod_rewrite.so
# 視需求啟用:mod_ssl, mod_headers, mod_expires, mod_deflate 等
在 LoadModule 區塊末尾新增:
LoadModule php5_module "D:/Program Files/PHP5.4/php5apache2_4.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html
AddHandler application/x-httpd-php .php
PHPIniDir "D:/Program Files/PHP5.4"
路徑請使用正斜線 / 或雙反斜線 \\\\,避免單反斜線轉義問題。
ServerAdmin admin@example.com
DocumentRoot "E:/www"
<Directory "E:/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ScriptAlias /cgi-bin/ "D:/Program Files/Apache2.4/cgi-bin/"
<Directory "D:/Program Files/Apache2.4/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
已在 <Directory "E:/www"> 設定 AllowOverride All。
DirectoryIndex index.html index.php
複製 php.ini-development 為 php.ini,編輯:
extension_dir = "D:/Program Files/PHP5.4/ext"
取消下列行前分號:
extension=php_curl.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_soap.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_xmlrpc.dll
[mail function]
SMTP = smtp.example.com
smtp_port = 25
sendmail_from = you@example.com
[Date]
date.timezone = Asia/Taipei
以系統管理員身分開啟 CMD:
cd /d D:\Program Files\Apache2.4\bin
httpd.exe -k install -n "Apache24"
啟動服務:net start Apache24 或透過 services.msc。
在 E:\www 建立 index.php:
<?php phpinfo(); ?>
瀏覽器訪問 https://localhost/,應顯示 PHP 資訊頁面,且 Apache 2.4 Handler 區塊顯示載入成功。
| 現象 | 可能原因 | 解決 |
|---|---|---|
| 瀏覽器顯示 403 Forbidden | 目錄權限、Require all granted 缺失 | 檢查 <Directory> 區塊權限設定 |
| PHP 程式碼直接顯示未執行 | LoadModule 路徑錯誤、PHPIniDir 未設 | 確認 php5apache2_4.dll 存在、路徑正確、重啟 Apache |
| 無法載入 php_curl.dll 等擴展 | extension_dir 錯誤、缺少 VC9 運行時 | 安裝 Visual C++ 2010 Redistributable (x86) |
| Apache 啟動報錯 "AH00526: Syntax error" | httpd.conf 語法錯誤 | 執行 httpd.exe -t 檢查語法 |
手動安裝雖步驟較多,但能精確控制每個模組、路徑、參數。掌握此流程後,遷移至生產伺服器、升級版本、編譯客製模組皆可觸類旁通。現代專案建議優先考慮 Docker 容器化部署,獲得一致、可重現的環境。