目錄表
在 Apache2 上同時代管多個網站
如果您已經在 Gandi 的伺服器上使用 Ubuntu 7.10,並安裝了 Apache2,您就可以開始向您的朋友或顧客展示網站。
在剛安裝完成時,Apache 預設會顯示所有的虛擬站台指向同一個網頁。如果您只有一個網站,您可以將網頁放在 /var/www 內,這樣不論是使用網域或是 IP 連線時都會顯示同一個網站。
建立虛擬站台
Apache 可以代管一個以上的站台。事實上 Apache 可以代管無上限的站台。這個功能叫做 “虛擬站台”,您可以透過 Apache 設定即可使用。
基本上來說,設定虛擬站台只需要使用到這兩個資料夾 /etc/apache2/sites-available/ and /etc/apache2/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 將會連結到指定的位置。
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. 故障排除
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