在 Ubuntu 中使用 Apache2 新增 Virtual Host 可以讓你在一台伺服器上運行多個網站或應用程式。以下是設定 Apache2 Virtual Host 的步驟:
1. 準備目錄結構
首先,你需要為每個網站創建一個目錄來存放網站文件。例如,如果你想設置一個名為 example.com
的網站:
sudo mkdir -p /var/www/example.com/public_html
為了便於管理,你還可以設置適當的權限:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com
2. 創建一個示例的 index.html
文件
為了測試,你可以在新建的網站目錄中創建一個簡單的 index.html
文件:
nano /var/www/example.com/public_html/index.html
在文件中添加以下內容:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
保存並退出。
3. 創建 Virtual Host 設定文件
現在,我們需要創建一個新的 Virtual Host 設定文件。在 /etc/apache2/sites-available/
目錄下創建一個文件,例如 example.com.conf
:
sudo nano /etc/apache2/sites-available/example.com.conf
在文件中添加以下內容:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- ServerAdmin: 設置網站管理員的電子郵件。
- ServerName: 設置主要的域名(如
example.com
)。 - ServerAlias: 設置其他的域名別名(如
www.example.com
)。 - DocumentRoot: 指定網站的根目錄。
保存並退出。
4. 啟用新建的 Virtual Host
使用 a2ensite
命令來啟用新創建的 Virtual Host 配置文件:
sudo a2ensite example.com.conf
接著,重新加載 Apache2 使更改生效:
sudo systemctl reload apache2
5. 更新 hosts
文件(本地測試時)
如果你在本地測試而不是在正式的網域環境中,可能需要更新你的 /etc/hosts
文件,讓你的瀏覽器知道 example.com
指向你的伺服器:
sudo nano /etc/hosts
添加以下行:
127.0.0.1 example.com
保存並退出。
6. 測試配置
在瀏覽器中訪問 http://example.com
,如果一切正確,你應該會看到之前創建的 index.html
文件內容。
7. 禁用預設的 Virtual Host (可選)
如果你希望禁用預設的 Apache 虚拟主机,可以运行以下命令:
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
這樣就設置完成了 Apache2 的 Virtual Host。你可以使用類似的步驟來配置其他網站,只需為每個網站創建對應的配置文件和網站目錄。