Apache 2.2 虚拟主机配置(本人推荐的)
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
??????? 即,都將域名指向本機。
??????? 了解更多hosts文件詳細見:hosts。
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)將 <Directory “C:/webroot"> 標簽 和 其 內部的選項都注釋掉,即
??????? #<Directory "C:/webroot">
?????????? # Options None
?????????? # AllowOverride None
?????????? # Order allow,deny
?????????? # Allow from all
??????? #</Directory>
??????? 每個虛擬主機對于訪問限制可以單獨配置,當然也是在httpd-vhosts.conf配置
??????? 上面注釋掉的,都是httpd.conf默認的ServerName、DocumentRoot和Directory屬性,因為每個虛擬主機都可以有自己的配置,故可將這些默認的注釋掉。
3.2 修改httpd-vhosts.conf文件
NameVirtualHost *:80
<VirtualHost *:80>
??? ServerAdmin webmaster@aaa.com
??? 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
??? <Directory "C:/webroot/aaa.com">
??????? Options None
??????? AllowOverride None
??????? Order allow,deny
??????? Allow from all
??? </Directory>
</VirtualHost>
<VirtualHost *:80>
??? ServerAdmin webmaster@bbb.com
??? 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
??? <Directory "C:/webroot/bbb.com">
??????? Options None
??????? AllowOverride None
??????? Order allow,deny
??????? Allow from all
??? </Directory>
??? Alias /vpath "c:/webroot/vpath"
??? <Directory "c:/webroot/vpath">
??????? Options None
??????? AllowOverride None
??????? Order allow,deny
??????? Allow from all
??? </Directory>
</VirtualHost>
值得注意的是,VirtualHost是有順序的,排在最前的VirtualHost是我們默認的網站域名。如果沒有注釋掉httpd.conf中的DocumentRoot和ServerName,那么第一個虛擬主機的這兩個配置都必須與httpd.conf中的一樣,包括端口。當然我這里建議注釋掉httpd.conf中的標簽。
ServerAdmin??????? 網站管理員郵箱,基本上可以隨便寫。
DocumentRoot????? 虛擬主機的根目錄,確保磁盤地址存在,否則apache重新加載配置文件時會報錯。
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會報錯。
本人看了覺得很清晰明了,自己動手做了一邊很順利,就轉過來了,希望幫助大家學會怎么配apache的虛擬主機。
本文轉自:http://hi.baidu.com/mnsch/blog/item/c5e1a694ca8c4610d31b705e.html#lastcmt
總結
以上是生活随笔為你收集整理的Apache 2.2 虚拟主机配置(本人推荐的)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apache 提示You don't h
- 下一篇: 常用10种PHP编辑器下载