Appache 2 2虛擬主機配置

2021-06-14 23:07:48 字數 2912 閱讀 1314

出自:

1.網域名稱問題

假設我們有兩個網域名稱:www.aaa.com和www.bbb.com

為了方便測試,我們可以通過系統下的hosts檔案,設定解析這兩個網域名稱時對應的ip,在xp系統盤的 windows\system32\drivers\etc 下,找到hosts檔案, 在其中新增兩條

127.0.0.1 www.aaa.com

127.0.0.1 www.bbb.com

即,都將網域名稱指向本機。

2.需要配置的檔案

需要配置兩個檔案,即httpd.conf和httpd-vhosts.conf

httpd.conf在apache伺服器資料夾的conf裡面

httpd-vhosts.conf在conf資料夾的extra裡面

多說兩句,httpd.conf是apache的主配置檔案,包含apache一些基本的設定,而httpd-vhosts.conf主要是配置虛擬主機 的配置檔案,這個體現了apache配置檔案的模組化思想,一些常用的配置都進行了模組化,進行配置和修改時就會很方便。

3.步驟

3.1 修改httpd.conf檔案

(1)把#include conf/extra/httpd-vhosts.conf前面的#去掉,意思是讓httpd.conf檔案包含httpd-vhosts.conf這個 配置檔案,這是apache的配置模組化的乙個表現,上面說過了。

(2)將 servername *:80 注釋掉,即前面新增 # 。servername需要在httpd-vhosts.conf檔案中配置,每個虛擬主機對應的servername都是不同的,servername 通常設定為網域名稱,當然也可以設定成其他,*表示通配本機所有網域名稱。

(3)將 documentroot "c:/webroot" 注釋掉,每個虛擬主機的documentroot 都是不同的,需要在httpd-vhosts.conf配置,所以將主配置檔案中的注釋掉。

(4)將 標籤 和 其 內部的選項都注釋掉,即

## options none

# allowoverride none

# order allow,deny

# allow from all #

每個虛擬主機對於訪問限制可以單獨配置,當然也是在httpd-vhosts.conf配置

上面注釋掉的,都是httpd.conf預設的servername、documentroot和directory屬性,因為每個虛擬主機都可以有自己 的配置,故可將這些預設的注釋掉。

3.2 修改httpd-vhosts.conf檔案

namevirtualhost *:80

serveradmin [email protected]

documentroot "c:/webroot/aaa.com"

servername www.aaa.com

serveralias aaa.com *.aaa.com

errorlog "logs/dummy-host.aaa.com-error.log"

customlog "logs/dummy-host.aaa.com-access.log" common

options none

allowoverride none

order allow,deny

allow from all

serveradmin [email protected]

documentroot "c:/webroot/bbb.com"

servername www.bbb.com

serveralias bbb.com *.bbb.com

errorlog "logs/dummy-host2.bbb.com-error.log"

customlog "logs/dummy-host2.bbb.com-access.log" common

options none

allowoverride none

order allow,deny

allow from all

alias /vpath "c:/webroot/vpath"

options none

allowoverride none

order allow,deny

allow from all

值得注意的是,virtualhost 是有順序的,排在最前的virtualhost是我們預設的**網域名稱。如果沒有注釋掉httpd.conf中的documentroot和 servername,那麼第乙個虛擬主機的這兩個配置都必須與httpd.conf中的一樣,包括埠。當然我這裡建議注釋掉httpd.conf中的 標籤。

serveradmin        **管理員郵箱,基本上可以隨便寫。

servername         虛擬主機網域名稱。

serveralias          虛擬主機網域名稱別稱,*表示通配。如*.aaa.com就可以代表bbs.aaa.com或news.aaa.com等。

errorlog               虛擬主機錯誤日誌,可以自己設定名稱,一般儲存到apache主目錄logs資料夾下。

customlog          虛擬主機訪問日誌。

directory             設定虛擬主機主目錄的訪問限制屬性。

alias                    設定虛擬路徑,如第二個虛擬主機可以通過 bbb.com/vpath訪問到c:/webroot/vpath中的網頁。

3.3 配置完成儲存後

重啟apache伺服器,應該就可以了,如果有錯誤,可以檢視一下apache的錯誤日誌,注意documentroot的路徑一定要真是存在,否則 apache會報錯。

參考資 料:

apache2 2 虛擬主機配置

plain view plain copy loadmodule vhost alias module modules mod vhost alias.so 去掉 意思是啟用apache的虛擬主機功能。去掉這一行的 意思是從conf extra httpd vhosts.conf這個檔案匯入虛擬主機...

apache2 2 虛擬主機配置

plain view plain copy loadmodule vhost alias module modules mod vhost alias.so 去掉 意思是啟用apache的虛擬主機功能。去掉這一行的 意思是從conf extra httpd vhosts.conf這個檔案匯入虛擬主機...

apache2 2 虛擬主機配置

loadmodule vhost alias module modules mod vhost alias.so去掉 意思是啟用apache的虛擬主機功能。include conf extra httpd vhosts.conf去掉這一行的 意思是從conf extra httpd vhosts.c...