在 Windows 上手動搭建 Apache + PHP 開發環境,能深入理解 Web 服務器與 PHP 交互原理,且版本可控、無多餘組件。本文記錄 Apache 2.4 (VC11) + PHP 5.6 (VC11 TS) 的完整安裝配置步驟。
| 組件 | 版本要求 | 下載地址 |
|---|---|---|
| Visual C++ Redistributable | VC11 (2012) | Microsoft 官網 |
| PHP | 5.6.x VC11 x86 Thread Safe | windows.php.net |
| Apache | 2.4.x Win32 VC11 | Apache Lounge |
關鍵:PHP 和 Apache 必須使用相同的 VC 版本(VC11)和線程安全模式(Thread Safe),否則無法加載 php5apache2_4.dll。
雙擊運行 vcredist_x86.exe,完成安裝。
# 解壓到 E:\WAMP\PHP
# 複製 php.ini-development 為 php.ini
# 編輯 php.ini 關鍵配置:
extension_dir = "E:/WAMP/PHP/ext"
date.timezone = "PRC"
# 啟用常用擴展:
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_curl.dll
extension=php_openssl.dll
# 解壓到 E:\WAMP\Apache
# 目錄結構:
E:\WAMP\Apache\bin\httpd.exe
E:\WAMP\Apache\conf\httpd.conf
# 服務器根目錄
ServerRoot "E:/WAMP/Apache"
# 服務器名稱
ServerName localhost:80
# 網站根目錄
DocumentRoot "E:/WWW"
<Directory "E:/WWW">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 默認首頁
DirectoryIndex index.html index.php
# CGI 目錄
<Directory "E:/WAMP/Apache/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
# 虛擬主機配置
Include conf/extra/httpd-vhosts.conf
# ====== 關鍵:關聯 PHP ======
# 加載 PHP 模塊(路徑根據實際調整)
LoadModule php5_module "E:/WAMP/PHP/php5apache2_4.dll"
# 處理 .php 文件
AddType application/x-httpd-php .php
# PHP 配置文件目錄
PHPIniDir "E:/WAMP/PHP"
<VirtualHost *:80>
ServerName localhost
DocumentRoot "E:/WWW"
<Directory "E:/WWW">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# 示例:項目虛擬主機
<VirtualHost *:80>
ServerName myproject.local
DocumentRoot "E:/WWW/myproject/public"
<Directory "E:/WWW/myproject/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
別忘在C:\Windows\System32\drivers\etc\hosts添加:127.0.0.1 myproject.local
# 以管理員身份運行 CMD
cd E:\WAMP\Apache\bin
# 安裝服務
httpd.exe -k install -n "Apache24"
# 啟動/停止/重啟
httpd.exe -k start -n "Apache24"
httpd.exe -k stop -n "Apache24"
httpd.exe -k restart -n "Apache24"
# 卸載服務
httpd.exe -k uninstall -n "Apache24"
# 測試配置語法
httpd.exe -t
<?php
// E:\WWW\index.php
phpinfo();
?>
瀏覽器訪問 https://localhost/,顯示 PHP 信息頁面即成功。
| 現象 | 原因與解決 |
|---|---|
| 啟動報錯 "The requested operation has failed" | 端口 80 被佔用(IIS、Skype),修改 Listen 8080 或關閉佔用程序 |
| PHP 不解析,直接顯示代碼 | LoadModule 路徑錯誤、缺少 AddType、PHPIniDir 未配置 |
| 報錯 "Cannot load php5apache2_4.dll" | VC 版本不匹配、TS/NTS 不匹配、PHP 目錄不在 PATH 中 |
| 虛擬主機不生效 | 未包含 httpd-vhosts.conf、hosts 文件未配置、Require all granted 缺失 |
| 中文路徑/文件名亂碼 | Apache 2.4+ 需 AcceptPathInfo On、PHP mbstring.internal_encoding = UTF-8 |
LoadModule deflate_module modules/mod_deflate.so + 配置壓縮類型LoadModule ssl_module modules/mod_ssl.so + 憑證配置手動搭建雖繁瑣,但能獲得最乾淨、可控的開發環境。新項目建議直接使用 PHP 8.x + Apache 2.4 (VC15) 或 Docker 容器化方案。