| 組件 | 推薦版本 | 下載來源 |
|---|---|---|
| Apache | 2.4.x (Win64) | Apache Lounge (含 OpenSSL) |
| MySQL | 8.0.x / 5.7.x | 官網 (MSI 安裝包) |
| PHP | 8.2.x / 8.1.x (NTS) | 官網 (Zip 包,Non Thread Safe) |
關鍵選型:Apache 2.4 + PHP 8.x → 選 Thread Safe (TS) 版本 (配合 mod_php);Nginx + PHP-FPM 或 IIS → 選 Non Thread Safe (NTS)。本文以 Apache + PHP TS 為例。
C:\Apache24 (路徑無空格、無中文)。httpd -k install 安裝服務。httpd -k start 或「服務」面板啟動 Apache2.4。https://localhost,出現 It works! 表示成功。mysql -u root -p 測試連接。C:\php。php.ini-development 為 php.ini。php.ini 關鍵配置:extension_dir = "C:/php/ext" ; 啟用常用擴展 extension=curl extension=gd extension=mbstring extension=mysqli extension=pdo_mysql extension=openssl extension=xml date.timezone = Asia/Shanghai max_execution_time = 300 memory_limit = 256M upload_max_filesize = 20M post_max_size = 25M ; 生產環境關閉 display_errors = Off log_errors = On error_log = "C:/php/logs/php_error.log"
C:\php 添加到系統環境變量 PATH。php -v 驗證。編輯 C:\Apache24\conf\httpd.conf:
# 載入 PHP 模塊 (TS 版本) LoadModule php_module "C:/php/php8apache2_4.dll" PHPIniDir "C:/php" # 關聯 .php 文件SetHandler application/x-httpd-php # 目錄索引優先 index.phpDirectoryIndex index.php index.html
C:\Apache24\htdocs 創建 test.php:httpd -k restart。https://localhost/test.php,出現 PHP 版本信息表、mysqli/pdo_mysql 顯示 enabled 即成功。| 現象 | 原因 | 解決 |
|---|---|---|
| Apache 啟動報錯「The requested operation has failed」 | 端口 80 被佔用 (IIS、Skype、VMware) | 關閉佔用程序,或修改 httpd.conf Listen 8080 |
| PHP 模塊載入失敗 | VC++ 運行庫缺失、TS/NTS 不匹配、路徑錯誤 | 安裝 VC++ Redist,確認 php8apache2_4.dll 存在 |
| phpinfo 顯示 Configuration File (php.ini) Path 為空 | PHPIniDir 未生效 | 檢查 httpd.conf 路徑拼寫,重啟 Apache |
| MySQL 連接失敗 | 密碼錯誤、服務未啟動、防火牆攔截 | services.msc 啟動 MySQL80,檢查 3306 端口 |
# httpd.conf 末尾包含 Include conf/extra/httpd-vhosts.conf # conf/extra/httpd-vhosts.confDocumentRoot "C:/www/project1/public" ServerName project1.local AllowOverride All Require all granted DocumentRoot "C:/www/project2/public" ServerName project2.local AllowOverride All Require all granted
同時編輯 C:\Windows\System32\drivers\etc\hosts:
127.0.0.1 project1.local project2.local
手動搭建 WAMP 能深入理解各組件交互細節,利於後續線上部署排錯。生產環境建議使用 Docker 或 一鍵包 (如 phpStudy, XAMPP, WampServer) 但需理解其背後原理。