教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

怎么為Web服務(wù)器配置虛擬主機(jī)?【步驟演示】

更新時(shí)間:2023年05月02日17時(shí)09分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

在安裝了Web服務(wù)器Apache后,為了更好地使用Apache,還需要學(xué)習(xí)如何對(duì)Apache進(jìn)行配置。在項(xiàng)目開(kāi)發(fā)中,經(jīng)常需要配置虛擬主機(jī)和訪問(wèn)權(quán)限,下面對(duì)Web服務(wù)器的配置進(jìn)行詳細(xì)講解。

1.配置虛擬主機(jī)

在默認(rèn)情況下,Apache只有Chwebapache2.4hndoes這一個(gè)站點(diǎn)目錄,而在學(xué)習(xí)的過(guò)程中,可能需要用到多個(gè)站點(diǎn)。為此,可以利用Apoche的虛擬主機(jī)功能來(lái)實(shí)現(xiàn)多個(gè)站點(diǎn)。

Apache的默認(rèn)站點(diǎn)使用IP地址127.0.0.1或主機(jī)名localhost來(lái)訪問(wèn),這兩種方式訪問(wèn)到的站點(diǎn)目錄都是C:webapache2.4htdoes。而通過(guò)虛擬主機(jī),可以實(shí)現(xiàn)用自定義的域名來(lái)訪問(wèn),并且可以為不同的域名指定不同的站點(diǎn)目錄。

由于申請(qǐng)一個(gè)真實(shí)的域名需要一定的費(fèi)用,為了便于開(kāi)發(fā),可以通過(guò)更改hosts文件來(lái)實(shí)現(xiàn)將任意域名解析到本地。在Windows系統(tǒng)中以管理員身份打開(kāi)命令行,然后執(zhí)行如下命令,調(diào)用記事本來(lái)編輯hosts文件。

notepad C: Windowa\Systen32\drivers\etc\hosts

將hosts文件打開(kāi)后,在該文件中配置IP地址和域名的映射關(guān)系,具體如下。

127.0.0.1 ww.php.test
127.0.0.1 vww.adnin.teat

上述配置表示當(dāng)訪間www.php.test或www.admin.test這兩個(gè)域名時(shí),自動(dòng)解析到127.0.0.1這個(gè)IP地址上。經(jīng)過(guò)上述配置之后,就可以在瀏覽器上直接輸人域名來(lái)訪問(wèn)本機(jī)的Web服務(wù)器了。需要注意的是,這種域名解析方式只對(duì)本機(jī)有效。

通過(guò)虛擬主機(jī)可以在一臺(tái)服務(wù)器上部署多個(gè)網(wǎng)站,雖然服務(wù)器的IP地址是相同的,但是當(dāng)用戶(hù)使用不同以名訪問(wèn)時(shí),訪問(wèn)到的不是相同的網(wǎng)站

下面開(kāi)始學(xué)習(xí)如何配置Apache虛擬主機(jī),具體操作步驟如下。

(1)修改 httpl.conf文件,啟用虛擬主機(jī)配置文件。

在Apache的配置文件httpd.conf 中找到如下配置,刪除“#”,取消注釋即可。

#Include conf/extra/httpd-vhosts.conf

在上述配置中,lnclode表示從另一個(gè)文件中加載配置,后面是配置文件的路徑。

(2)在htpd-vhosts.cof配置文件中進(jìn)行虛擬主機(jī)的配置。

打開(kāi)confestra/httpd-vhosts.conf配置文件,將文件中原有的配置刪除或全部使用“#”進(jìn)行注釋?zhuān)缓笾匦戮帉?xiě)配置,具體如下:

<virtualhoat·:80>
    DocumentRoot "C:/veb/apache2.4/htdoca"
    ServerName localhoat
</Virtualhoat*:80>
<Virtualhoat*:80>
    DocumentRoot "C:/web/apache2.4/htdocs/vnnv.php.test"
    ServerNane ww.php.test
</Virtualhoat>

上述配置實(shí)現(xiàn)了兩個(gè)虛擬主機(jī),分別是localhost和www.php.test,并且這兩個(gè)虛擬主機(jī)的站點(diǎn)目錄被指定在不同的目錄下。“*:80”表示任意IP的80端口,“DocumentRoot”表示文檔根目錄,“ServerName”表示服務(wù)器名。

(3)在Apache的hadoes目錄中創(chuàng)建www.php.test目錄,并在這個(gè)目錄中放一個(gè)簡(jiǎn)單的網(wǎng)頁(yè),將文件命名為index.html.網(wǎng)頁(yè)內(nèi)容為“Welcome www.php.dest”。

(4)在修改了Apache配置文件后,重啟Apache服務(wù),使配置文件生效。

(5)在瀏覽器中訪問(wèn)這兩個(gè)虛擬主機(jī),會(huì)看到兩個(gè)不同的網(wǎng)站,如圖1所示。

訪問(wèn)虛擬主機(jī)
圖1 訪問(wèn)虛擬主機(jī)

訪問(wèn)權(quán)限控制

在Apache的主配置文件hupd.conf中,默認(rèn)已經(jīng)添加了一些目錄的配置,這些配置寫(xiě)在<Directory>指令中。為了便于查看,下面將這部分配置摘取出來(lái)。

# 第1處配置
<directory>
</directory>
    AllowOverride none
    Require all denLed
#第2處配置
<directory "${SRVROOT}/htdocs>
    Options Indexes FollowSymLinks
    AllowOverride None
    Roquire all granted
</directory>

在上述代碼中,一共有兩處目錄配置,第1處是根目錄配置,第2處是針對(duì)Apache安裝目錄下的htdoes目錄的配置。當(dāng)用戶(hù)訪問(wèn)某個(gè)目錄時(shí),Apache會(huì)查找該目錄的配置和所有上級(jí)目錄的配置,該目錄的配置會(huì)覆蓋上級(jí)目錄的配置。

第1處配置中的Reqpuire all denied表示阻止所有的訪問(wèn),第2處配置中的 Require all granted表示允許所有的訪問(wèn)。此外,還可以配置為Require local,表示只允許本地訪問(wèn)。

當(dāng)用戶(hù)訪問(wèn)的是htdoes 目錄時(shí),第2處配置中的 Require all granted 會(huì)覆蓋第1處的Reqpuire all denied,所以htdoes 目錄允許訪問(wèn)。而當(dāng)用戶(hù)訪問(wèn)的是其他目錄時(shí),由于其他目錄沒(méi)有配置 Require allgranted,會(huì)被第1處配置阻止訪問(wèn)。

在配置虛擬主機(jī)時(shí),將wwwphp.test的站點(diǎn)目錄放在了htdoes目錄中,因此該站點(diǎn)不需要配置訪問(wèn)權(quán)限就可以訪問(wèn)。

AlowOvemride mone表示不飾取分布式配置文件。分布式配置文件是指分布在每個(gè)目錄下的配置文件,文件名為“.htaccess”。如果允許Apache讀取分布式配置文件,可以將其修改為AllowOveride All。Apache在讀取分布式配置文件時(shí),會(huì)從磁盤(pán)根目錄一直查找到當(dāng)前訪問(wèn)的目錄,如果這些目錄下有“htaccess”文件就會(huì)被讀取,子目錄的配置會(huì)覆蓋上級(jí)目錄的配置。分布式配置文件的優(yōu)點(diǎn)在于,修改了配置后,不需要重啟Apache服務(wù)就能生效;缺點(diǎn)在于,讀取這些文件增加了服務(wù)器的負(fù)擔(dān),會(huì)降低性能。

Options lndeses表示啟用Apache的目錄瀏覽功能,當(dāng)該功能啟用時(shí),如果用戶(hù)訪問(wèn)的目錄中沒(méi)有默認(rèn)索引頁(yè)(Directorylndex)指定的文件,就會(huì)顯示文件列表。在安裝PHP時(shí),已經(jīng)對(duì)Directorylndex進(jìn)行了配置,Apache會(huì)在當(dāng)前訪問(wèn)的目錄下依次查找index.php和index.himl,如果兩個(gè)文件都不存在,就會(huì)開(kāi)啟文件列表。

開(kāi)啟文件列表可以方便查看服務(wù)器上的文件,但會(huì)降低服務(wù)器的安全性,導(dǎo)致服務(wù)器上的重要文件被隨意訪問(wèn)。如果需要關(guān)閉這個(gè)功能,可以將“Indexes”修改為“-lndexes”。

在Opions lndexes后面還有一個(gè)FollowSymLinks,它表示是否允許使用符號(hào)鏈接。符號(hào)鏈接在Limux系統(tǒng)中比較常見(jiàn),可以根據(jù)實(shí)際需要進(jìn)行配置。

<virtualhost *:80="">
    DocunentRoot "C:/web/www/wnw.adnin.test"
    ServerName www.adnin.test
</virtualhost>
<directory "c:="" web="" www"="">
    Options -indexes
    AllowOverride All
    Require local
</directory>

(2)創(chuàng)建Cloweblowwwlwww.admnin.test目錄,然后在該目錄下創(chuàng)建index.html文件,文件的內(nèi)容為“Weloome

index.html"。

(3)在瀏覽器中訪問(wèn)“www.admin.lesi”進(jìn)行測(cè)試,效果如圖2所示。

測(cè)試訪問(wèn)權(quán)限
圖2 測(cè)試訪問(wèn)權(quán)限

從圖2可以看出,Apache沒(méi)有顯示文件列表,返回了Forbidkdlen錯(cuò)誤提示。

(5)在sub目錄下創(chuàng)建“htaccess”文件,開(kāi)啟目錄瀏覽功能,具體代碼如下。

Options indexes

目錄瀏覽效果
圖3 目錄瀏覽效果

(6)在瀏覽器中刷新,目錄瀏覽效果如圖3所示。

從圖3可以看出,Apache顯示了當(dāng)前目錄下的文件和子目錄(這些文件需要讀者自行準(zhǔn)備),說(shuō)明分布式配置文件已經(jīng)生效了。需要說(shuō)明的是,“htaecess”文件也在該目錄下,但Apache為了安全性、不會(huì)將該文件顯示出來(lái),也不允許通過(guò)URL訪問(wèn)。

0 分享到:
和我們?cè)诰€交談!