iThome 會員中心 | iThome online | iT邦幫忙 | apphome

CentOS Apache虛擬目錄設定

標籤: apache

現今很多系統都會開發在網站上,所以一家公司可能有很多網站,不過礙於主機有限,一台主機上可能需要掛載很多網站,很多架站軟體都可以做到,Apache則是利用虛擬目錄來架設多個網站,讓多個網站同時存在同一台網站伺服器上。

 

環境介紹

現有一台網站伺服器,有兩個網站【blog.jerryit.idv.tw】和【media.jerryit.idv.tw】必須存在同一台web網站主機上,資料如下

名稱

資料

類型

網站伺服器

192.168.0.200

主機(A)

blog

blog.jerryit.idv.tw

別名(CNAME)

media

media.jerryit.idv.tw

別名(CNAME)

 

DNS設定

將資料設定到DNS上,範例DNS是用Windows Server 2003 DNS做設定,或者可以自行架設bind,會使用Windows Server 2003 DNS是因為通常工作環境中DNS都是與Active Directory架設在一起,所以才會採用Windows Server 2003 DNS,DNS上新增一筆網站主機192.168.0.200的A record,並設定兩個別名(CNAME)blog及media指向web網站主機那筆A record,設定如下圖所示。

 

建立blog和media網站目錄

在/var/www/html目錄下建立blog和media兩個網站的目錄

[root@localhost /]# mkdir /var/www/html/blog                 //建立blog目錄

[root@localhost /]# mkdir /var/www/html/media                //建立media目錄

Ø   若目錄路徑不設定到這位置,請以下設定也需修改

 

建立blog和media範例網頁

在blog和media兩個網站目錄內建立範例網頁

[root@localhost /]# echo "Hello blog.jerryit.idv.tw" > /var/www/html/blog/index.html

[root@localhost /]# echo "Hello media.jerryit.idv.tw" > /var/www/html/media/index.html

Ø   範例網頁可以自行建立其他範例網頁上傳,上述兩個範例網頁是為了測試區分用的。

 

設定Apache網站虛擬目錄

要建立網站虛擬目錄,必需編輯Apache設定檔,將blog和media虛擬目錄資訊寫入httpd.conf,Apache設定檔內會有虛擬目錄範例。

[root@localhost /]# vi /etc/httpd/conf/httpd.conf

#<VirtualHost *:80>

#    ServerAdmin webmaster@dummy-host.example.com

#    DocumentRoot /www/docs/dummy-host.example.com

#    ServerName dummy-host.example.com

#    ErrorLog logs/dummy-host.example.com-error_log

#    CustomLog logs/dummy-host.example.com-access_log common

#</VirtualHost>

 

將範例複製兩份,將範例前面的#號移除,依序修改範例內容,輸入內容如所示。

[root@localhost /]# vi /etc/httpd/conf/httpd.conf

<VirtualHost  *:80>

    ServerAdmin admin@jerryit.idv.tw

    DocumentRoot /var/www/html/blog               //網頁目錄

    ServerName blog.jerryit.idv.tw                //網址名稱

    ErrorLog logs/blog.jerryit.idv.tw-error_log

    CustomLog logs/blog.jerryit.idv.tw-access_log common

</VirtualHost>

 

<VirtualHost  *:80>

    ServerAdmin admin@jerryit.idv.tw

    DocumentRoot /var/www/html/media              //網頁目錄

    ServerName media.jerryit.idv.tw               //網址名稱

    ErrorLog logs/media.jerryit.idv.tw-error_log

    CustomLog logs/media.jerryit.idv.tw-access_log common

</VirtualHost>

 

Apache虛擬目錄設定檔說明

參數

說明

NameVirtualHost

虛擬主機IP位址,例如192.168.1.98

VirtualHost

網站IP及連接埠,例如192.168.1.98:80

ServerAdmin

網站管理者E-Mail,例如admin@jerryit.idv.tw

DocumentRoot

網站存放目錄,例如/var/www/html/blog

ServerName

網站網址,例如blog.jerryit.idv.tw

ErrorLog

網站錯誤記錄,存放位置/var/log,例如blog.jerryit.idv.tw_log

CustomLog

存放紀錄檔,例如blog.jerryit.idv.tw_log

 

確認NameVirtualHost連接埠是否為80,若不是修改回80。

[root@localhost /]# vi /etc/httpd/conf/httpd.conf

# Use name-based virtual hosting.

#

NameVirtualHost *:80

#

 

設定完成後,必需重新啟動Apache服務,設定值才會生效。

[root@localhost /]# service httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

 

 

測試Apache虛擬目錄是否成功

開啟瀏覽器輸入【http://blog.jerryit.idv.tw】,blog網頁可以正常開啟,如下圖所示。

 

瀏覽器輸入【http://media.jerryit.idv.tw】,media網頁可以正常開啟,如下圖所示。

 

blog.jerryit.idv.tw和media.jerryit.idv.tw可以正常開啟,代表虛擬目錄及DNS設定成功,若需在第三個虛擬目錄,做法可以依此類推。

 

設定虛擬目錄後網頁無法開啟:

1.  使用nslookup是否可以正確查詢到兩個網站,若無法正確查詢,需檢查DNS的CNAME是否有正確設定。

2.  若DNS可以正常查詢,網站無法開啟,檢查httpd.conf的虛擬目錄設定是否正常設定或httpd.conf設定完成後,Apache是否有重新啟動。

3.  檢查瀏覽起是否有掛載proxy,若有掛載proxy,將之取消,再測試是否可以開啟。

 

 

Jerry_IT資訊技術手札

2014-08-13 17:42:39

檢舉

討論

發表討論

檢舉的理由:

不當言論 惡意灌水 廣告行為 一文多貼 其他

補充檢舉理由(可省略),字數不可超過100字

▼ ADVERTISEMENT ▼



還不是iThome download會員? 立即加入!