Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Apache 虛擬主機配置:新增主機頭與多站點部署完整指南

編輯:關於伺服器

核心概念

Apache 透過 VirtualHost 指令實現「一個 IP、多個域名」的虛擬主機功能,關鍵在於正確設定 ServerName、DocumentRoot 與 Directory 權限。

基本配置範例 (httpd.conf)

# 啟用名稱型虛擬主機 (Apache 2.4+ 通常預設啟用,舊版需顯式宣告)
NameVirtualHost *:80

# === 第一個站點 ===
<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "F:/wwwroot/dede"
    ServerName www.45it.com
    ServerAlias 45it.com
</VirtualHost>

# === 第二個站點 ===
<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "F:/wwwroot/wordpress"
    ServerName wp.45it.com
    ServerAlias blog.45it.com
</VirtualHost>

# === 兜底站點 (捕獲未匹配域名) ===
<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "F:/wwwroot/htdocs"
    ServerName *
    ServerAlias *
</VirtualHost>

關鍵點解析

  • ServerName:主域名,必須與 DNS 解析一致。
  • ServerAlias:別名域名(如裸域、子域名),支援多個,空格分隔。
  • DocumentRoot:網站實體路徑,使用正斜線 / 或雙反斜線 \\。
  • 順序很重要:兜底站點 (ServerName *) 必須放在最後。

跨目錄虛擬主機權限問題

若 DocumentRoot 指向預設 wwwroot 以外的目錄(如 E:/htdocs),常遇到 403 Forbidden: You don't have permission to access / on this server。

解決方法:調整全域目錄權限

# 原始限制性配置
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# 修改為允許存取
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

說明: Apache 2.4 使用 Require all granted 取代舊版 Order/Allow/Deny 語法。修改後重啟 Apache 即可跨目錄建立虛擬主機。

Copyright © Windows教程網 All Rights Reserved