在 Apache2 上同時代管多個網站

如果您已經在 Gandi 的伺服器上使用 Ubuntu 7.10,並安裝了 Apache2,您就可以開始向您的朋友或顧客展示網站。

在剛安裝完成時,Apache 預設會顯示所有的虛擬站台指向同一個網頁。如果您只有一個網站,您可以將網頁放在 /var/www 內,這樣不論是使用網域或是 IP 連線時都會顯示同一個網站。

建立虛擬站台

Apache 可以代管一個以上的站台。事實上 Apache 可以代管無上限的站台。這個功能叫做 “虛擬站台”,您可以透過 Apache 設定即可使用。

基本上來說,設定虛擬站台只需要使用到這兩個資料夾 /etc/apache2/sites-available/ and /etc/apache2/sites-enabled/

使用 Apache 1.x 版本的人要使用虛擬站台需要將 <virtualhost> 放到 /etc/apache/httpd.conf 內。Apache2 是使用不同的方式來管理虛擬站台,它將每個站台的設定獨立放到 “sites-available” 內,然後從 “sites-enabled” 建立一個連結表示啟動。

在伺服器的 Apache2 上, 要建立虛擬站台,您需要將設定檔存放在 sites-available 內,它會對應到虛擬站台,簡單來說: 一個放在 sites-available 內的檔案 = 一個代管的虛擬站台

在下面的範例中,我們將在 Gandi 伺服器的 Apache2 上增加一個網站叫做 www.djmadjack.com 。當然,您可以設定伺服器承載多個虛擬網站。如何實做呢?您只需要重複執行下面的步驟,只需要修改虛擬站台名稱。

1. 新增一個檔案在 "sites-available"

在 /etc/apache2/sites-available/ 這個資料夾內,你會看到一個預設的檔案 “default”。請用這個檔案當作你虛擬站台的樣板檔。直接複製這個檔案即可,如下操作:

cp default djmadjack.com

為了更清楚,我們建議您使用網域名稱來命名設定檔。這樣在辨視上就非常容易區分理解。當然您可以隨心所欲自訂也可以。

2. 編輯 "sites-available" 內的新設定檔

現在您需要剛剛建立的檔案,這個檔案就是這台伺服器上這個虛擬站台的設定檔。請用您的文字編輯器打開他..

nano djmadjack.com

…編輯內容將他改成您要代管的網站。在這個範例中,我們將示範如何在 “sites-available” 中建立一個 djmadjack.com 的網站。下面是範例:

<VirtualHost *>
      ServerAdmin eric@djmadjack.com
      ServerName www.djmadjack.com
      DocumentRoot /var/www/djmadjack.com/
      <Directory />
              Options FollowSymLinks
              AllowOverride None
      </Directory>
      <Directory /var/www/djmadjack.com/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride None
              Order allow,deny
              allow from all
      </Directory>

 (...)

您可以移除第一行的 NameVirtualHost * 因為他是從 default 那個檔案複製來的。

請確認您有加入 ServerName 這行,這在 default 檔案中沒有。

DocumentRoot 這行是指定您的網頁位置,您的客戶將會瀏覽您指定的網頁。您可以指定到任何您想要的地方,但請確認您的路徑是否存在。範例中 djmadjack.com 將會連結到指定的位置。

使用虛擬站台是沒有數量限制的。您只需要在 sites-available 內建立新的設定檔。但是越多的虛擬站台會導致您的伺服器變慢。但是,如果您的 Gandi 虛擬站台變得很慢,只要增加伺服器的等級即可。

3. 從 "sites-enabled" 建立連結

最後您需要建立一個 symbolic link 到您存放在 /etc/apache2/sites-enabled/ 中的檔案:

cd /etc/apache2/sites-enabled

先切換到 sites-enabled 目錄,然後:

ln -s /etc/apache2/sites-available/djmadjack.com

建立一個連結到您新建立的虛擬站台檔案。

另外您可以用 a2ensite 與 a2dissite 來啟動或關閉您的虛擬站台設定檔。

您可以輸入下列指令,它會幫您自動建立連結來啟用您的虛擬站台:

a2ensite djmadjack.com

或是輸入下列指令來關閉您的虛擬站台:

a2dissite djmadjack.com

4. 重起啟動 Apache

在您完成修改後,請記得要重新啟動 Apache ,您的變更才會載入系統內,重新啟動的命令如下:

/etc/init.d/apache2 restart

另外您可以只重新載入 Apache 的設定檔,這對於正在上線的機器來說影響比較小。

/etc/init.d/apache2 reload

恭喜您結束了! 但別忘了將網域名稱指向這台虛擬站台伺服器。

5. 故障排除

如果您有修改設定檔,請不要忘記重新啟動 Apache !

錯誤:

apache2: apr_sockaddr_info_get() failed for ubuntu

解決方式: 請在 /etc/hosts 內在 localhost 之前增加您的主機名稱,如下範例:

127.0.0.1       ubuntu localhost

錯誤:

apache2: Could not reliably determine the server's fully qualified domain name

解決方式: 您需要在 /etc/apache2/httpd.conf 中告訴 Apache 您的伺服器名稱是什麼。如果您不知道伺服器名稱,請在終端機輸入下列指令:

hostname

它會顯示伺服器名稱是什麼; 例如: ubuntu。然後使用您的文字編輯打開 /etc/apache2/httpd.conf 把如下它修改好(請把 ubuntu 修改成你實際的名稱):

ServerName ubuntu


上一次變更: 2016/05/31 10:23 (外部編輯)