Ubuntu下如何配置Apache虛擬主機(jī)?
在Ubuntu下如何配置Apache的虛擬主機(jī)呢?下文給出了詳細(xì)的解釋,具體內(nèi)容如下所述。
A基本配置
我們都知道,如果我們想在單臺(tái)機(jī)器上設(shè)置多個(gè)域名或主機(jī)名時(shí),我們就要用到基于名稱的虛擬主機(jī)了。那么要如何進(jìn)行設(shè)置呢?這就是本指南想解決的問題了。在Ubuntu的/etc/apache2/目錄下有個(gè)Apache2的主配置文件apache2.conf。在該文件中我們可以看到有這么一行內(nèi)容:
Include/etc/apache2/sites-enabled/[^.#]*
這行的意思表明該文件包含了/etc/apache2/sites-enabled/目錄中文件名不含"."或"#"這兩個(gè)字符的所有文件。而當(dāng)我們列出該目錄的文件時(shí),發(fā)現(xiàn)只有一個(gè)000-default的軟鏈接文件,實(shí)際連接的是/etc/apache2/sites-available目錄中的default文件,不難看出該文件的文件名中并不包含"."或"#"。所以這個(gè)文件當(dāng)然是要被配置文件apache2.conf所包含的了。打開該文件,發(fā)現(xiàn)它其實(shí)是一個(gè)虛擬主機(jī)的配置文件,不過由于該文件中的虛擬主機(jī)為*,所以它實(shí)際上是一個(gè)通用配置文件。如果我們要建立虛擬主機(jī)的話,那么就要把該文件改成如下所示:
- NameVirtualHost10.39.6.59
 - [VirtualHost10.39.6.59]
 - ServerNamewww.britepic.org
 - ServerAdminUbuntu@gmail.com"]Ubuntu@gmail.com
 - DocumentRoot/var/www/
 - [Directory/]
 - OptionsFollowSymLinks
 - AllowOverrideNone
 - [/Directory]
 - [Directory/var/www/]
 - OptionsIndexesFollowSymLinksMultiViews
 - AllowOverrideNone
 - Orderallow,deny
 - allowfromall
 - #Thisdirectiveallowsustohaveapache2'sdefaultstartpage
 - #in/apache2-default/,butstillhave/gototherightplace
 - #CommentedoutforUbuntu
 - #RedirectMatch^/$/apache2-default/
 - [/Directory]
 - ScriptAlias/CGI-bin//usr/lib/cgi-bin/
 - [Directory"/usr/lib/cgi-bin"]
 - AllowOverrideNone
 - OptionsExecCGI-MultiViews+SymLinksIfOwnerMatch
 - Orderallow,deny
 - Allowfromall
 - [/Directory]
 - ErrorLog/var/log/apache2/error.log
 - #Possiblevaluesinclude:debug,info,notice,warn,error,crit,
 - #alert,emerg.
 - LogLevelwarn
 - CustomLog/var/log/apache2/Access.logcombined
 - ServerSignatureOn
 - Alias/doc/"/usr/share/doc/"
 - [Directory"/usr/share/doc/"]
 - OptionsIndexesMultiViewsFollowSymLinks
 - AllowOverrideNone
 - Orderdeny,allow
 - Denyfromall
 - Allowfrom127.0.0.0/255.0.0.0::1/128
 - [/Directory]
 - [/VirtualHost]
 
下面我們來分析一下上面這段設(shè)置中與虛擬主機(jī)有關(guān)的設(shè)置語句:
`NameVirtualHost10.39.6.59`:表示我們要做的是一個(gè)基于名稱的虛擬主機(jī),且其IP地址為
10.39.6.59
`[VirtualHost10.39.6.59]和[/VirtualHost]`:表示在其中的是一個(gè)虛擬主機(jī)的配置
`ServerNamewww.britepic.org`:設(shè)置虛擬主機(jī)的域名
`ServerAdminUbuntu@gmail.com`:設(shè)置該虛擬主機(jī)網(wǎng)管員的郵件
`DocumentRoot/var/www/`:設(shè)置該虛擬主機(jī)的主目錄路徑
`ErrorLog/var/log/apache2/error.log`:設(shè)置該虛擬主機(jī)的出錯(cuò)信息
`CustomLog/var/log/apache2/access.logcombined`:設(shè)置該虛擬主機(jī)的訪問信息
這樣我們就配置了一個(gè)虛擬主機(jī)www.britepic.org。但由于這是缺省配置,所以在Apache2重啟
之后,無論你輸入DNS服務(wù)器中指向這個(gè)主機(jī)的任何域名,都會(huì)被導(dǎo)向www.britepic.org這個(gè)
缺省配置所指向的/var/www這個(gè)目錄的。除非該域名被其他虛擬主機(jī)配置所用,比如我們還配置
了edunuke.britepic.org指向本機(jī),且配置了相應(yīng)的虛擬主機(jī),這樣的話,輸入域名
edunuke.britepic.org就會(huì)被對(duì)應(yīng)該域名的目錄中。
B進(jìn)一步說明
為了說明清楚我們?cè)偬砑右粋€(gè)虛擬主機(jī)站點(diǎn)edunuke.britepic.org,首先到/etc/apache2/sites-available/目錄中建立一個(gè)文件edunuke。當(dāng)然這個(gè)文件名中是沒有"."
或"#"這兩個(gè)字符的了。然后編輯該文件:
- [VirtualHost10.39.6.59]
 - ServerNameedunuke.britepic.org
 - ServerAdminUbuntu@britepic.org
 - DocumentRoot"/var/www/edunuke/"
 - ErrorLog"/var/log/apache2/edunuke_errors.log"
 - CustomLog"/var/log/apache2/edunuke_Accesses.log"common
 - [/VirtualHost]
 
設(shè)置的具體含義同上面的相似,這是我就不再多說了。然后再運(yùn)行命令:
sudoa2ensiteedunuke
這樣的話,虛擬主機(jī)站點(diǎn)edunuke.britepic.org就已經(jīng)安裝好了。這時(shí)你也可以在
- /etc/apache2/sites-enabled/目錄中發(fā)現(xiàn)多了一個(gè)到/etc/apache2/sites-available/edun
 
uke
的軟鏈接。接下來就是將Apache2重啟來使虛擬主機(jī)站點(diǎn)運(yùn)行起來:
sudo/etc/init.d/apache2restart
這樣你在瀏覽器上輸入edunuke.britepic.org的話,就會(huì)被指向/var/www/edunuke目錄了,而輸入其他指向本機(jī)的域名則都會(huì)指到缺省配置中的/var/www目錄中。熟悉Apache2的朋友會(huì)問為什么這樣麻煩,放在一個(gè)文件中不也是可以嗎?為什么要用兩個(gè)文件呢?
其實(shí)很簡單,因?yàn)槿绻乙獙?duì)edunuke站點(diǎn)進(jìn)行維護(hù)時(shí),我只要運(yùn)行命令:
- sudoa2dissiteedunuke
 - sudo/etc/init.d/apache2restart
 
即可,這樣既可以維護(hù)edunuke這個(gè)站點(diǎn),同時(shí)還不影響其他站點(diǎn)的正常運(yùn)行。
總結(jié):
希望本文介紹的在Ubuntu下配置Apache虛擬主機(jī)的方法能夠?qū)ψx者有所幫助,更多有關(guān)linux操作系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。
【編輯推薦】















 
 
 
 
 
 
 