溫馨提示×

Linux Apache2虛擬主機如何設置

小樊
35
2025-10-21 04:55:16
欄目: 云計算

Linux Apache2虛擬主機設置詳細步驟

1. 安裝Apache2

首先確保系統已安裝Apache2。以Ubuntu/Debian為例,執行以下命令:

sudo apt update
sudo apt install apache2

安裝完成后,Apache會自動啟動??赏ㄟ^systemctl status apache2確認服務狀態。

2. 啟用必要模塊

虛擬主機常用模塊需提前啟用,包括rewrite(支持URL重寫)和ssl(支持HTTPS):

sudo a2enmod rewrite
sudo a2enmod ssl

啟用后需重啟Apache使模塊生效:

sudo systemctl restart apache2

3. 創建虛擬主機配置文件

虛擬主機配置文件存放在/etc/apache2/sites-available/目錄下,每個站點對應一個.conf文件(如example.com.conf)。使用文本編輯器創建并編輯文件:

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

寫入以下基礎配置(以80端口為例):

<VirtualHost *:80>
    ServerAdmin webmaster@example.com  # 管理員郵箱
    ServerName example.com             # 主域名
    ServerAlias www.example.com        # 別名(可選)
    DocumentRoot /var/www/example.com  # 網站根目錄
    
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks  # 允許目錄列表和符號鏈接
        AllowOverride All               # 允許.htaccess覆蓋配置(需mod_rewrite)
        Require all granted             # 允許所有用戶訪問(Apache 2.4+)
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log  # 錯誤日志路徑
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined  # 訪問日志格式
</VirtualHost>

關鍵參數說明

  • ServerName:必須與域名一致,是虛擬主機的核心標識;
  • DocumentRoot:網站文件的存儲目錄,需提前創建(如/var/www/example.com);
  • AllowOverride All:允許通過.htaccess文件修改配置(如URL重寫),若無需此功能可改為None。

4. 創建網站目錄并設置權限

為避免權限問題,需創建網站根目錄并賦予正確權限:

sudo mkdir -p /var/www/example.com  # 創建目錄(-p遞歸創建子目錄)
sudo chown -R www-data:www-data /var/www/example.com  # 將所有者設為Apache用戶(www-data)
sudo chmod -R 755 /var/www/example.com  # 設置目錄權限(755:所有者可讀寫執行,其他用戶可讀執行)

目錄權限需嚴格遵循“最小權限原則”,避免使用777(完全開放),防止安全風險。

5. 啟用虛擬主機

使用a2ensite命令啟用配置文件(將配置鏈接到sites-enabled/目錄):

sudo a2ensite example.com.conf

若需禁用默認虛擬主機(000-default.conf,避免與新站點沖突),可執行:

sudo a2dissite 000-default.conf

6. 測試配置并重啟Apache

在重啟前,需檢查配置文件語法是否正確:

sudo apache2ctl configtest

若輸出Syntax OK,則說明配置無誤。重啟Apache使更改生效:

sudo systemctl restart apache2

若需重新加載配置(不中斷現有連接),可使用:

sudo systemctl reload apache2

7. 配置DNS解析

虛擬主機生效的前提是域名指向服務器IP。登錄DNS提供商管理界面,添加A記錄

  • 主機名@(代表主域名)或www(代表www子域名);
  • 記錄類型A;
  • :服務器公網IP地址;
  • TTL:默認(如3600秒)。
    配置完成后,等待DNS生效(通常幾分鐘至幾小時)。

8. 可選:配置SSL加密(HTTPS)

為提升網站安全性,建議啟用SSL證書(以Let’s Encrypt免費證書為例):

sudo apt install certbot python3-certbot-apache  # 安裝Certbot
sudo certbot --apache -d example.com -d www.example.com  # 自動獲取并配置證書

Certbot會自動修改Apache配置,添加SSL虛擬主機(監聽443端口)。證書有效期為90天,到期前會自動提醒續期,也可手動執行sudo certbot renew續期。

常見問題排查

  • 無法訪問站點:檢查防火墻是否放行80/443端口(sudo ufw allow 80/tcp; sudo ufw allow 443/tcp);確認DNS解析是否正確(使用ping example.com驗證);
  • 權限錯誤:確保DocumentRoot目錄的所有者為www-data,權限為755;
  • 配置語法錯誤:使用apache2ctl configtest檢查,根據提示修復錯誤。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女