在 Windows 本地開發環境中,配置 Apache 虛擬主機能讓專案使用獨立域名(如 www.mydemo.com)而非 localhost/project,極大提升開發體驗並避免路徑相關 Bug。本文將手把手教你完成從 httpd.conf 修改到 hosts 綁定的全流程,並解決常見權限與路徑問題。
hosts 檔案需要)D:/Apache 為例D:/Apache/conf/httpd.conf(路徑視安裝位置而定)。#Include conf/extra/httpd-vhosts.conf,移除行首 # 啟用虛擬主機配置檔分離(推薦)。或直接在檔案末尾新增配置區塊。<VirtualHost *:80>
ServerName www.mydemo.com
DocumentRoot "D:/mydemo"
<Directory "D:/mydemo">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml
AllowOverride Options FileInfo
Require all granted
</Directory>
</VirtualHost>
關鍵指令說明:
ServerName:瀏覽器訪問的域名,需與 hosts 一致。DocumentRoot:網站根目錄絕對路徑,使用正斜線 / 避免轉義問題。AllowOverride Options FileInfo:允許 .htaccess 覆蓋重寫規則等,框架專案必備。Require all granted:Apache 2.4+ 授權語法,舊版為 Order Allow,Deny / Allow from all。C:\Windows\System32\drivers\etc\hosts。127.0.0.1 www.mydemo.com
保存後,在命令提示字元執行 ipconfig /flushdns 刷新 DNS 快取。
mkdir D:\mydemo
echo "<?php phpinfo(); ?>" > D:\mydemo\index.php
httpd -k restart 或服務管理器重啟。瀏覽器訪問 https://www.mydemo.com,應顯示 PHP 資訊頁,代表配置成功。
| 現象 | 原因 | 解決 |
|---|---|---|
| 403 Forbidden | 目錄權限不足或 Apache 版本語法錯誤 | 檢查 Require all granted;確認 Windows 資料夾安全性允許 Users 讀取 |
| 無法訪問 / 顯示預設頁 | hosts 未生效或瀏覽器快取 | ipconfig /flushdns;嘗試無痕模式或 curl -v |
| PHP 不解析 | 未載入 php_module 或 AddType 缺失 | 確認 LoadModule php_module "D:/php/php8apache2_4.dll" 及 AddType application/x-httpd-php .php |
若需同時運行多個專案,只需在 httpd-vhosts.conf 中新增多個 <VirtualHost> 區塊,並同步更新 hosts。開發階段亦可使用 *.test 通配符搭配 dnsmasq 或 Acrylic DNS Proxy 實現自動解析,免去逐個手動添加。
掌握 Windows 下 Apache 虛擬主機配置,能讓本地開發環境更貼近線上生產環境,減少部署時的路徑、Cookie 域名、重寫規則等差異導致的問題。建議將常用配置封裝為腳本或 Ansible Playbook,新機器一鍵佈署。