更新時(shí)間:2023-09-05 來(lái)源:黑馬程序員 瀏覽量:
在本地環(huán)境進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí),經(jīng)常需要部署多個(gè)網(wǎng)站,每個(gè)網(wǎng)站可以用對(duì)應(yīng)的域名來(lái)訪問(wèn),可以通過(guò)Apache的虛擬主機(jī)功能來(lái)實(shí)現(xiàn)這樣的效果。Apache虛擬主機(jī)的具體配置步驟如下。
(1)配置域名。由于申請(qǐng)真實(shí)域名比較麻煩,為了便于學(xué)習(xí)和測(cè)試,可以更改操作系統(tǒng)的hosts文件,實(shí)現(xiàn)將任意域名解析到指定IP地址。在操作系統(tǒng)中,hosts文件用于配置域名與IP地址之間的解析關(guān)系,當(dāng)請(qǐng)求域名在hosts文件中存在解析記錄時(shí),可直接使用該記錄,只有當(dāng)不存在解析記錄時(shí),才通過(guò)DNS域名解析服務(wù)器進(jìn)行解析。
以管理員身份運(yùn)行命令行工具,輸入如下命令打開(kāi)hosts文件。
C: WINDOWS \system32> notepad drivers\etc\hosts
上述命令表示用記事本(notepad)打開(kāi)hosts文件。將文件打開(kāi)后,在文件的最底部添加如下一行內(nèi)容。
127.0.0.1 laravel.test
經(jīng)過(guò)上述配置后,就可以在瀏覽器上通過(guò)htp:/laraveltest來(lái)訪問(wèn)本機(jī)的Web服務(wù)器,這種方式只對(duì)本機(jī)有效。由于當(dāng)前還沒(méi)有配置虛擬主機(jī),此時(shí)用htp:/laravel.test 訪問(wèn)的是Apache的默認(rèn)主機(jī)。
(2)啟用虛擬主機(jī)輔配置文件。在Apache的confextra目錄中有一些輔配置文件,這些文件是hitpd.conf的擴(kuò)展文件,用于將一部分配置抽取出來(lái),以便于修改。打開(kāi)hitpdleonf文件,找到如下所示的一行配置.刪除前面的“#”即可啟用虛擬主機(jī)輔配置文件。
#Include conf/extra/httpd-vhosta.conf
(3)配置虛擬主機(jī)。打開(kāi)confextralhtpd-vhosts.conf 輔配置文件,可以看到Apache提供的默認(rèn)配置,具體如下:
<VirtualHost *:80> ServerAdnin vebmasterêdunmy-host.exanpleacom DocunentRoot "c:/Apache24/docs/dungay-host.example.com" ServerName dummy-host.example,com ServerAlias snnw.dummy-host.exanple.com ErrorLog "1ogs/dummy-host.ekanple.com-error_log" customxlog "logs/dunay-hostresacple.con-access_log" comon </VirtualHost>
上述配置中,第l行的“*80”表示該主機(jī)通過(guò)80端口訪問(wèn);ServerAdmin是管理員郵箱地址;DocumentRoot是該虛擬主機(jī)的文檔目錄;ServerName是虛擬主機(jī)的域名;ServerAlias用于配置多個(gè)域名別名(用空格分隔);Erorlog是錯(cuò)誤日志;Customlog是訪問(wèn)日志,其后的common表示日志格式為通用格式。
上述默議配置本書(shū)中用不到,直接刪除即可,也可以全部加上“#”注釋起來(lái),以便于參考。然后編寫(xiě)讀者自己的虛擬主機(jī)配置,具體如下:
<VirtualHost ·:80> DocumentRoot "c:/web/apache2.4/htdocs" ServerNane localhost </VirtualHost> <VirtualHost*:80> DocumentRoot "c:/web/www/laravel/public" ServerNane laravel.test </VirtualHoat> <Directory "c:/web/www"> Options -indexes AllowOverride All Require local </Directory>
上述配置實(shí)現(xiàn)了兩個(gè)虛擬主機(jī),分別是localhost和laravel.test,并且這兩個(gè)虛擬主機(jī)的站點(diǎn)目錄指定在不同的路徑下。第9~13行用于配置c/web/www路徑的訪問(wèn)權(quán)限。其中,第10行用于關(guān)閉件列表功能;第1l行用于開(kāi)啟分布式配置文件,開(kāi)啟后會(huì)自動(dòng)讀取目錄下的.htaccess文件中的配置;第12行用于配置目錄訪問(wèn)權(quán)限,設(shè)為Require local表示只允許本地訪問(wèn),若允許所有訪問(wèn),可設(shè)為Require all granted,若拒絕所有訪問(wèn),可設(shè)為Require all denied。
(4)編寫(xiě)測(cè)試文件。創(chuàng)建C:webwwwlaravelpublic目錄,并在目錄中編寫(xiě)一個(gè)內(nèi)容為L(zhǎng)aravel的index.html 網(wǎng)頁(yè)。然后重啟Apache服務(wù)使配置生效,使用瀏覽器進(jìn)行訪問(wèn)測(cè)試,localhost和laravel.test 這兩個(gè)虛擬主機(jī)的頁(yè)面效果如圖1-8所示。