在RHEL/CentOS中使用Enable_Disable Vhosts選項建立Apache虛擬主機


Apache虛擬主機是一項強大的功能,允許您在一臺伺服器上執行多個網站。使用虛擬主機,您可以配置Apache根據傳入請求的主機名或IP地址提供不同的內容。這使得在一臺伺服器上託管多個網站成為可能,每個網站都有自己的域名、內容和設定。

在本教程中,我們將向您展示如何在RHEL/CentOS 8.0伺服器上建立Apache虛擬主機。我們將介紹虛擬主機的基本概念,並引導您完成使用Apache配置檔案建立虛擬主機的步驟。我們還將向您展示如何使用啟用/停用虛擬主機選項更輕鬆地管理您的虛擬主機。

先決條件

在開始之前,您需要以下內容:

  • 已安裝並執行Apache的RHEL/CentOS 8.0伺服器。

  • 指向您伺服器IP地址的域名。如果您沒有單獨的域名,可以使用子域名。

  • Linux命令列介面和Apache Web伺服器的基本知識。

使用Apache建立虛擬主機

按照下面列出的步驟使用Apache建立虛擬主機。

步驟1:為網站檔案建立一個目錄

設定虛擬主機的第一步是建立一個目錄來儲存網站檔案。此目錄將成為虛擬主機的文件根目錄,這是儲存網站檔案的頂級目錄。

在本教程中,我們將在/var/www/html/目錄中建立一個名為“example.com”的目錄。此目錄將儲存我們虛擬主機的網站檔案。

要建立目錄,請執行以下命令:

sudo mkdir /var/www/html/example.com

接下來,設定目錄上的適當許可權,以便Apache可以讀取和寫入它:

sudo chown -R apache:apache /var/www/html/example.com
sudo chmod -R 755 /var/www/html/example.com

步驟2:建立虛擬主機配置檔案

下一步是為Apache建立一個虛擬主機配置檔案。此檔案將告訴Apache如何處理我們網站的請求。使用以下命令為我們的網站建立一個新的虛擬主機配置檔案:

sudo nano /etc/httpd/conf.d/example.com.conf

將以下程式碼新增到檔案中,將example.com替換為您自己的域名:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ServerAlias www.example.com
    ErrorLog /var/log/httpd/example.com_error.log
    CustomLog /var/log/httpd/example.com_access.log combined
</VirtualHost>

此程式碼建立一個在埠80(預設HTTP埠)上監聽並從/var/www/html/example.com目錄提供檔案的虛擬主機。它還指定了虛擬主機的域名以及錯誤和訪問日誌檔案。

儲存並退出檔案。

步驟3:啟用虛擬主機

建立虛擬主機配置檔案後,您需要在Apache中啟用它。這告訴Apache在收到該域名的請求時開始提供虛擬主機的內容。

要啟用虛擬主機,請執行以下命令:

sudo systemctl enable httpd
sudo systemctl restart httpd

這將啟用虛擬主機並重新啟動Apache以使更改生效。

步驟4:測試虛擬主機

要測試虛擬主機,請開啟網路瀏覽器並在位址列中輸入您的域名。如果一切配置正確,您應該會看到您在步驟1中建立的網站。

如果您沒有看到網站,請確保:

  • 您的域名指向正確的IP地址。

  • 虛擬主機配置檔案已儲存在正確的位置。

虛擬主機配置檔案包含正確的資訊和語法。

如果您對虛擬主機配置檔案進行任何更改,請記住重新載入Apache以使更改生效:

sudo systemctl reload httpd

您還可以使用apachectl命令在重新載入Apache之前測試虛擬主機配置:

sudo apachectl configtest

此命令將檢查虛擬主機配置檔案的語法並報告任何錯誤。

啟用和停用虛擬主機

除了建立虛擬主機外,您還可以根據需要啟用和停用它們。當您想暫時使網站離線或重新聯機時,這很有用。

要啟用虛擬主機,請使用a2ensite命令後跟虛擬主機配置檔案的名稱:

sudo a2ensite example.com.conf

此命令從sites-available目錄建立一個指向sites-enabled目錄的符號連結,從而有效地啟用虛擬主機。

要停用虛擬主機,請使用a2dissite命令後跟虛擬主機配置檔案的名稱:

sudo a2dissite example.com.conf

此命令將刪除sites-enabled目錄中的符號連結,從而有效地停用虛擬主機。

啟用或停用虛擬主機時,請記住重新載入Apache以使更改生效:

sudo systemctl reload httpd

啟用或停用虛擬主機後重新載入Apache可確保更改立即生效。

建立多個虛擬主機

如果您需要在同一伺服器上託管多個網站或 Web 應用程式,您可以建立多個虛擬主機。為此,您可以在 /etc/httpd/conf.d/ 目錄中建立其他虛擬主機配置檔案。每個配置檔案都應包含單個虛擬主機的設定。

以下是建立第二個虛擬主機的示例:

  • 在 /etc/httpd/conf.d/ 目錄中建立一個新的虛擬主機配置檔案:

sudo nano /etc/httpd/conf.d/example2.com.conf
  • 將以下內容新增到配置檔案:

<VirtualHost *:80>
  ServerName example2.com
  DocumentRoot /var/www/example2.com/public_html
  ErrorLog /var/www/example2.com/error.log
  CustomLog /var/www/example2.com/access.log combined
</VirtualHost>

    將 example2.com 替換為第二個網站的域名,並將 /var/www/example2.com/public_html 替換為網站檔案所在的目錄。

  • 儲存並關閉檔案。

  • 重新啟動 Apache 以應用更改:

sudo systemctl restart httpd

您可以重複這些步驟為所需數量的網站或 Web 應用程式建立其他虛擬主機。

虛擬主機故障排除

如果您遇到虛擬主機無法按預期工作的問題,您可以檢查以下幾點:

  • DNS 配置 - 確保您的域名已正確配置並指向正確的 IP 地址。

  • 檔案許可權 - 確保虛擬主機的檔案和目錄具有正確的擁有權和許可權。Apache 需要能夠讀取這些檔案和目錄才能提供網站服務。

  • Apache 日誌 - 檢查 Apache 錯誤日誌 (/var/log/httpd/error_log) 中是否有與虛擬主機相關的任何錯誤訊息。這可以提供有關問題的有用資訊。

  • 配置語法 - 確保您的虛擬主機配置檔案沒有語法錯誤。您可以使用 apachectl configtest 命令檢查配置檔案的語法。

  • 防火牆設定 - 檢查您的防火牆是否阻止了對虛擬主機的訪問。如果您使用的是 SSL/TLS,則可能需要開啟埠 80 (HTTP) 和 443 (HTTPS)。

管理虛擬主機的最佳實踐

為了有效地管理虛擬主機,請考慮以下最佳實踐:

  • 為虛擬主機和配置檔案使用描述性名稱,以便更容易識別它們。

  • 保持虛擬主機配置簡單,避免不必要的複雜性。

  • 定期測試虛擬主機配置,以確保它們正常工作。

  • 使用 SSL/TLS 來啟用客戶端和伺服器之間的安全通訊。

  • 定期監控您的伺服器,以確保您的虛擬主機效能良好且沒有安全問題。

透過遵循這些最佳實踐,您可以確保您的虛擬主機已正確配置並最佳執行。

結論

Apache虛擬主機允許您在一臺伺服器上執行多個網站,這對於小型企業和網站所有者來說是一種經濟高效的解決方案。按照本教程中的步驟,您可以輕鬆地在RHEL/CentOS 8.0伺服器上建立、測試、啟用和停用虛擬主機。記住保持您的虛擬主機配置檔案井然有序並保持最新,並在進行更改時重新載入Apache。

更新於:2023年6月23日

786 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.