首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Windows 下 Apache 2.4 虛擬主機配置完整步驟:修改 hosts、httpd.conf、httpd-vhosts.conf

     編輯:PHP 相關知識

Windows 下 Apache 2.4 虛擬主機配置完整步驟:修改 hosts、httpd.conf、httpd-vhosts.conf

在 Windows 本地開發環境配置多個虛擬主機 (如 www.site1.local, api.site2.local) 需修改三個檔案:系統 hosts 解析域名、Apache 主配置 httpd.conf 載入虛擬主機模組、虛擬主機配置 httpd-vhosts.conf 定義站點。本文提供標準化步驟與常見坑點。

步驟 1:修改系統 hosts 檔案

路徑:C:\Windows\System32\drivers\etc\hosts (需管理員權限編輯)

127.0.0.1       localhost
127.0.0.1       www.site1.local
127.0.0.1       api.site2.local
127.0.0.1       admin.site3.local

提示: 使用 notepad C:\Windows\System32\drivers\etc\hosts 在「以管理員身分執行」的命令提示字元中開啟。

步驟 2:修改 httpd.conf 載入虛擬主機模組

路徑:Apache24\conf\httpd.conf

  1. 啟用 mod_vhost_alias (可選,動態虛擬主機用):
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
  2. 啟用 httpd-vhosts.conf 匯入 (去掉行首 #):
    Include conf/extra/httpd-vhosts.conf
  3. 確認 ServerName 已設定 (避免啟動警告):
    ServerName localhost:80

步驟 3:編輯 httpd-vhosts.conf 定義站點

路徑:Apache24\conf\extra\httpd-vhosts.conf


    ServerName www.site1.local
    DocumentRoot "D:/www/site1/public"
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    
    ErrorLog "logs/site1-error.log"
    CustomLog "logs/site1-access.log" common



    ServerName api.site2.local
    DocumentRoot "D:/www/site2/api"
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    
    # API 專用:關閉目錄列表、啟用 CORS 模組等



    ServerName admin.site3.local
    DocumentRoot "D:/www/site3/admin"
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

步驟 4:重啟 Apache 驗證

# 命令列
httpd -k restart
# 或服務管理器重啟 Apache2.4 服務

瀏覽器訪問 https://www.site1.local 應正確顯示對應站點。

常見問題排查表

現象可能原因解決
訪問域名顯示預設頁面 (It works!)VirtualHost DocumentRoot 路徑錯誤或 權限不足檢查路徑大小寫、Require all granted、重啟 Apache
403 Forbidden 缺少 Require all grantedApache 2.4 預設拒絕所有,必須顯式授權
修改 hosts 不生效DNS 快取ipconfig /flushdns、瀏覽器清除快取、ping 域名確認解析
Apache 啟動失敗語法錯誤、端口被佔用httpd -t 檢查語法、netstat -ano | findstr :80 查端口佔用
PHP 不執行 (顯示原始碼)未載入 php_module 或未設定 AddHandler確認 LoadModule php_module、AddHandler application/x-httpd-php .php、PHPIniDir

進階:泛域名/動態虛擬主機 (開發環境適用)


    ServerName dev.local
    ServerAlias *.dev.local
    VirtualDocumentRoot "D:/www/%-2+/public"
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

配合 hosts:127.0.0.1 *.dev.local (需使用 泛域名 hosts 工具 或本地 DNS 如 dnsmasq)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved