出自:
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...