====== 在 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 ---- ----