====== 在 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 版本的人要使用虛擬站台需要將 放到 /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 的網站。下面是範例:
ServerAdmin eric@djmadjack.com
ServerName www.djmadjack.com
DocumentRoot /var/www/djmadjack.com/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
(...)
您可以移除第一行的 **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
----
----