2009年11月8日星期日

Ubuntu 如何設定 Apache 的虛擬網站 / 虛擬主機 ( VirtualHost ) ?

以下是在說明以網域名稱 ( Name Based )為基礎的 Virtual Host,也就是說,在一個 Apache 伺服器上依網域名稱來架設多個網站的,除了以網域名稱外,還有的,就是以 IP 為基礎 ( IP Based ) 的方式。

假設這次要架的網站是 : xyz.arthurtoday.com

1. 先安裝 Apache2

2.建立虛擬主機 ( Virtual Host ) 設定檔
在 /etc/apache2/sites-available 下,建立一個檔案名稱叫做 xyz.arthurtoday.com 的文字檔

sudo vi /etc/apache2/sites-available/xyz.arthurtoday.com

3.調整設定檔

把下面這一串打到 /etc/apache2/sites-available/xyz.arthurtoday.com 檔案裡..

<VirtualHost *:80>
           #管理者郵箱 
           ServerAdmin xyz@arthurtoday.com
           #網站名稱 
           ServerName xyz.arthurtoday.com
          #網站別名
          ServerAlias www.xyz.arthurtoday.com
          #網站的根目錄
          DocumentRoot /var/www/xyz.arthurtoday.com/public_html/
          #網站的錯誤日誌檔存放的位置與檔名
          ErrorLog /var/www/xyz.arthurtoday.com/logs/error.log
          #網站日誌檔存放的位置與檔名
          CustomLog /var/www/xyz.arthurtoday.com/logs/access.log combined
</VirtualHost>

4.建立網站資料夾
sudo mkdir -p /var/www/xyz.arthurtoday.com/public_html
sudo mkdir /var/www/xyz.arthurtoday.com/logs

5.啟用虛擬網站
sudo a2ensite xyz.arthurroday.com

6.重新載 Apache 的設定
sudo /etc/init.d/apache2 reload

7.在 arthurtoday.com 的 DNS 上,加一筆 xyz 的 A Record 指到這台 Apache Server 的 IP。


這樣就算完成了,只要在瀏覽器打入 xyz.arthurtoday.com 應該就可以看到一個沒有檔案的資料夾網頁了 (因為還沒放任何的 html 檔到 /var/www/xyz.arthurtoday.com/public_html )

8.如果要停用這個虛擬網站
sudo a2dissite xyz.arthurtoday.com
sudo /etc/init.d/apache2 reload

0 意見: