2010-07-22 90 views
2

我有一臺運行Apache 2的虛擬機,並且嘗試設置多個基於名稱的虛擬主機的時間最長。基本上,只要我在啓用站點的文件夾中上載並啓用新的虛擬主機文件,整個Web服務器就會停止響應。它不會啓動,我無法通過網絡瀏覽器連接到它,直到刪除文件時它纔會重新啓動。以下是具體步驟我下面:Apache 2.2.x上的虛擬主機問題

  1. 創建一個新的VirtaualHost文件,並將其上傳到等/啓用站點-的Apache2 /,虛擬主機文件看起來像下面的代碼,並命名爲www.glutenfreaks.com:

    的ServerAdmin [email protected] 服務器名www.glutenfreaks.com ServerAlias glutenfreaks.com

    # Indexes + Directory Root. 
    DirectoryIndex index.php 
    DocumentRoot /var/www/glutenfreaks/ 
    
    # CGI Directory 
    ScriptAlias /cgi-bin/ /var/www/glutenfreaks/cgi-bin 
    <Location /cgi-bin> 
         Options +ExecCGI 
    </Location> 
    
    
    # Logfiles 
    ErrorLog /var/www/glutenfreaks/logs/error.log 
    CustomLog /var/www/glutenfreaks/logs/access.log combined 
    

  2. 在命令行,然後我執行 「a2ensite www.glutenfreaks.com」

  3. 然後我重新加載服務器: 「/etc/init.d/apache2重裝」

而且那麼一切都變得繁榮,沒有任何工作了。

幫助??

感謝,

埃文

+0

當您的「每一件事情都很繁榮」時,您可以在這裏粘貼最相關的日誌/錯誤 – m0ntassar 2011-11-01 11:26:35

回答

2

單步創建一個新目錄 在創建虛擬主機的第一步是將創建一個目錄,我們將保留新網站的信息。

此位置稍後將成爲Apache虛擬配置文件中的文檔根目錄。通過在代碼行中添加-p,該命令會自動爲新目錄生成所有父項。

sudo mkdir -p /var/www/example.com/public_html 

您將需要指定一個實際的DNS認可的域或IP地址來測試虛擬主機是否正在工作。在本教程中,我們將使用example.com作爲正確域名的佔位符。

但是,如果您希望使用未經批准的域名來測試此過程,您將在步驟七中找到有關如何使其在本地計算機上工作的信息。

第二步 - 授予權限 我們需要將該目錄的所有權授予用戶,而不是將其保留在根系統上。

sudo chown -R www:www /var/www/example.com/public_html 

此外,重要的是要確保每個人都能夠閱讀我們的新文件。

sudo chmod 755 /var/www 

現在你已經完成了權限。

第三步 - 創建頁面在我們的配置目錄中,我們需要創建一個名爲index的新文件。HTML

sudo nano /var/www/example.com/public_html/index.html 

我們可以添加一些文本文件,所以我們將有一些看當IP重定向到虛擬主機。

<html> 
    <head> 
    <title>www.example.com</title> 
    </head> 
    <body> 
    <h1>Success: You Have Set Up a Virtual Host</h1> 
    </body> 
</html> 

保存並退出

第四步,創建新的虛擬主機文件 下一步是設置Apache的配置。我們將工作過的副本,繼續前進,使文件(你的域名命名這個文件)在同一目錄下複製:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example.com 

步驟在虛擬主機上五打開 打通新配置文件:

sudo nano /etc/apache2/sites-available/example.com 

我們將在此文件中設置一個虛擬主機。

第一步是在ServerAdmin行下爲ServerName插入一行。

ServerName example.com 

ServerName指定虛擬主機使用的域名。

如果你想使你的網站從多個名稱(例如,在此網址www),您可以包括通過添加ServerAlias線在你的虛擬主機文件的備用名稱訪問。您的虛擬主機文件的開頭將如下所示:

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName example.com 
     ServerAlias www.example.com 
    [...] 

下一步是填寫正確的文檔根目錄。對於本節,寫入在步驟一中創建的新目錄的擴展名。如果文檔根目錄不正確或不存在,您將無法設置虛擬主機。

的部分應該是這樣的:

DocumentRoot /var/www/example.com/public_html 

你不需要做任何其他修改該文件。保存並退出。

最後一步是激活主機。幸運的是,Ubuntu的提供了一個簡單的方法來做到這一點:

sudo a2ensite example.com 

第六步,重啓Apache 我們已經做了很多的更改配置,以及虛擬主機的設置。但是,在Apache重新啓動之前,我們所做的任何更改都不會生效。使用此命令重新啓動Apache:

sudo /etc/init.d/apache2 reload 

您可能會看到沿 線錯誤,因此無法可靠地確定了服務器的完全合格的域名,使用127.0.0.1 ServerName的

的消息只是一個警告,並且您將能夠訪問您的虛擬主機,而不會有任何其他問題。

可選步驟七 - 設置本地主機 如果您已將您的域名指向您的虛擬專用服務器的IP地址,則可以跳過此步驟 - 不需要設置本地主機。你的虛擬主機應該工作。但是,如果您想要嘗試新的虛擬主機而無需連接到實際的域名,則可以單獨在您的計算機上設置本地主機。

對於這一步,確保你在電腦本身,而不是你的液滴。

要繼續此步驟,您需要知道您的計算機的管理密碼,否則您將需要使用實際的域名來測試虛擬主機。

如果你是一個Mac或Linux平臺上,訪問計算機上的root用戶(SU)和打開你的hosts文件:

nano /etc/hosts 

如果你是在Windows計算機上,你可以找到方向在Microsoft站點上更改主機文件

您可以將本地主機詳細信息添加到此文件,如下面的示例所示。只要有線,那麼將瀏覽器指向example.com將爲您提供相應IP地址的所有虛擬主機詳細信息。

# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
127.0.0.1  localhost 

#Virtual Hosts 
12.34.56.789 example.com 

但是,它可能是一個好主意,當你完成,以避免將來出現混亂刪除這些由地址從本地主機文件夾中。

第八步 - 結果:查看您的虛擬主機正在運行 一旦完成虛擬主機的設置,您就可以看到它的外觀如何。輸入您的IP地址到瀏覽器中(即http://12.34.56.789

+1

請在此處發佈解決方案。鏈接可能會脫機,您的答案無用。 – Sirko 2012-12-13 09:28:41