如何在CentOS 6上設置Apache虛擬主機

原創地址:
http://www.howtoing.com/how-to-set-up-apache-virtual-hosts-on-centos-6/

關於虛擬主機

虛擬主機用於從單個IP地址運行多個域。這對於需要從一個虛擬專用服務器運行多個站點的人特別有用。根據用戶訪問站點的具體情況,站點會向訪問者顯示不同的信息。可以添加到VPS的虛擬主機數量沒有限制。

建立

本教程中的步驟要求用戶具有root權限。你可以看到如何設置了在初始服務器設置在第3步和4。此外,如果我在步驟引用用戶,我將使用名稱WWW。你可以實現任何適合你的用戶名。

此外,您需要在您的虛擬服務器上安裝並運行apache如果不是這樣,您可以使用以下命令下載:

sudo yum install httpd

第一步 - 創建一個新目錄

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

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

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

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

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

第二步 - 授予權限

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

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

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

 sudo chmod 755 /var/www

現在你都完成了權限。

第三步 - 創建頁面

我們需要在我們的配置目錄中創建一個名爲index.html的新文件。

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

我們可以向文件中添加一些文本,以便在IP重定向到虛擬主機時查看。

&lthtml>
  &lthead>
    &lttitle>www.example.com&lt/title>
  &lt/head>
  &ltbody>
    &lth1>Success: You Have Set Up a Virtual Host&lt/h1>
  &lt/body>
&lt/html>

保存並退出

第四步 - 打開虛擬主機

下一步是進入apache配置文件本身。

sudo vi /etc/httpd/conf/httpd.conf

有幾行要尋找。

確保您的文字與下面顯示的內容相符。

#Listen 12.34.56.78:80
Listen 80

向下滾動到文檔的最底部到名爲“虛擬主機”的部分。

NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#    

#    
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
# 
&ltVirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
&lt/VirtualHost>

要關注的最重要的行是NameVirtualHost,虛擬主機,文檔根和服務器名稱的行。讓我們一次採取這些。

  • 取消註釋(刪除數字符號)NameVirtualHost,不進行任何更改。星號表示通過端口80的任何IP地址將是虛擬主機。由於您的系統可能只有一個IP地址,這不是一個問題 - 但是,如果您願意,您可以用您的IP地址替換星號。
  • 您可以將其餘的數字標記留在原位,直到到達&ltVirtualHost *:80>行。通過&ltVirtualHost>取消註釋一切。
  • 保留&ltVirtualHost *:80>,因爲它的詳細信息必須與NameVirtual Host部分中的詳細信息匹配。如果您在該部分中用您的IP地址替換了星標,請務必在此處執行相同操作。
  • 文檔根是關鍵!對於此部分,寫入在第一步中創建的新目錄的擴展名。如果文檔根不正確或缺失,您將無法設置虛擬主機。
  • 服務器名稱是另一個重要的信息,包含虛擬主機的域名(例如www.example.com)。確保您完全拼寫域名;我們將在下一行放入任何備用的可能性。
  • ServerAlias是配置文件中的一個新行,默認情況下不存在。添加它將允許您列出域名的幾個變體,例如沒有前面的www。

本節中的其餘行不是設置虛擬主機所必需的。然而,知道他們做什麼仍然有幫助。

  • 服務器管理員要求網站管理員的電子郵件。
  • 錯誤日誌和自定義日誌跟蹤服務器的任何問題。錯誤日誌涵蓋在維護服務器時出現的問題,自定義日誌跟蹤服務器請求。您可以爲這些進程設置自定義位置。
  • 確保&ltVirtualHost>未註釋;然後保存並退出。

第五步 - 重新啓動Apache

我們對配置進行了很多更改。但是,它們將不會生效,直到Apache重新啓動。

首先停止所有apache進程:

sudo apachectl -k stop

然後再次啓動apache。

sudo /etc/init.d/httpd start

您可能會看到以下錯誤:

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

該消息只是一個警告,您將能夠訪問您的虛擬主機,沒有任何進一步的問題。

可選第六步 - 設置本地主機

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

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

如果你是一個Mac或Linux上,訪問根用戶( su在計算機上),並打開你的hosts文件:

nano /etc/hosts 

如果你是在Windows計算機上,你可以找到方向改變主機上的文件, 微軟網站

您可以將本地主機詳細信息添加到此文件,如下面的示例所示。只要該行在那裏,將您的瀏覽器指向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    www.example.com 

但是,最好在完成後從本地hosts文件夾中刪除這些補充地址,以避免任何未來的混亂。

第七步:結果:查看您的虛擬主機在操作

完成虛擬主機的設置後,您可以看到它如何在線。在瀏覽器中輸入您的IP地址(即http://12.34.56.789)

它應該看起來有點像我的得心應手截圖

做得好!

添加更多虛擬主機

要創建其他虛擬主機,您只需重複上述過程,小心地每次使用適當的新域名設置新的文檔根。然後只需將新的虛擬主機信息複製並粘貼到Apache Config文件中,如下所示

&ltVirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /etc/var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
&lt/VirtualHost>
&ltVirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/example.org/public_html
     ServerName www.example.org
     ServerAlias example.org
     ErrorLog /var/www/example.org/error.log
     CustomLog /var/www/example.orgrequests.log
&lt/VirtualHost>

查看更多

一旦您設置了虛擬主機,就可以繼續爲您的網站建立一個SSL證書安裝FTP服務器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章