Debian下安裝和配置Web服務器(以Apache/Nginx為例)
在開始安裝前,確保系統包列表是最新的,以避免依賴沖突:
sudo apt update && sudo apt upgrade -y
通過Debian官方倉庫安裝Apache2(默認包含Apache主程序、配置文件及常用模塊):
sudo apt install apache2 -y
安裝完成后,Apache服務會自動啟動。
檢查Apache服務是否處于“active (running)”狀態:
sudo systemctl status apache2
若未啟動,可使用sudo systemctl start apache2手動啟動。
若系統啟用了ufw(Uncomplicated Firewall),需允許HTTP(端口80)和HTTPS(端口443)流量:
sudo ufw allow 'Apache Full' # 允許HTTP和HTTPS
sudo ufw enable # 啟用防火墻(若未啟用)
在瀏覽器中輸入服務器的IP地址(如http://192.168.1.100),應看到Apache的默認歡迎頁面(包含“It works!”字樣),表示安裝成功。
通過Debian官方倉庫安裝Nginx(默認包含Nginx主程序、配置文件及常用模塊):
sudo apt install nginx -y
安裝完成后,Nginx服務會自動啟動。
檢查Nginx服務是否處于“active (running)”狀態:
sudo systemctl status nginx
若未啟動,可使用sudo systemctl start nginx手動啟動。
同樣,允許HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
sudo ufw enable
在瀏覽器中輸入服務器IP地址,應看到Nginx的默認歡迎頁面(包含“Welcome to nginx!”字樣),表示安裝成功。
虛擬主機允許在同一服務器上托管多個域名/網站。以下分別介紹Apache和Nginx的配置方法:
進入sites-available目錄(存放虛擬主機配置文件),創建新配置文件(如example.com.conf):
sudo nano /etc/apache2/sites-available/example.com.conf
添加以下內容(根據實際情況修改ServerName、DocumentRoot):
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
使用a2ensite命令啟用配置文件,并禁用默認站點(可選):
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf # 可選:禁用默認站點
sudo systemctl reload apache2 # 重新加載配置
創建網站根目錄并賦予當前用戶所有權(方便上傳文件):
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
在/var/www/example.com/html中創建index.html:
echo "<h1>Welcome to Example.com</h1>" | sudo tee /var/www/example.com/html/index.html
再次訪問http://example.com(需將域名解析到服務器IP),應看到自定義頁面。
進入sites-available目錄,創建新配置文件(如example.com):
sudo nano /etc/nginx/sites-available/example.com
添加以下內容(根據實際情況修改server_name、root):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/example.com_error.log;
access_log /var/log/nginx/example.com_access.log;
}
創建符號鏈接到sites-enabled目錄(Nginx讀取此目錄下的配置),并測試配置語法:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t # 測試配置是否有語法錯誤
若測試通過,重新加載Nginx:
sudo systemctl reload nginx
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
在/var/www/example.com/html中創建index.html:
echo "<h1>Welcome to Example.com</h1>" | sudo tee /var/www/example.com/html/index.html
訪問http://example.com,應看到自定義頁面。
為提升網站安全性,建議使用Let’s Encrypt免費獲取SSL證書。以下以Apache為例(Nginx步驟類似):
Certbot是Let’s Encrypt的客戶端,用于自動化證書申請和管理:
sudo apt install certbot python3-certbot-apache -y
運行Certbot命令,指定域名(如example.com和www.example.com):
sudo certbot --apache -d example.com -d www.example.com
按提示操作(如選擇“Redirect to HTTPS”以強制HTTPS),Certbot會自動配置Apache的SSL虛擬主機。
Certbot會自動添加cron任務,每3個月續期一次證書??墒謩訙y試續期:
sudo certbot renew --dry-run
若無錯誤,表示續期功能正常。
chown -R $USER:$USER /var/www/yourdomain)和Apache/Nginx配置中的Require all granted指令。curl http://localhost測試服務器本地訪問。https://example.com查看鎖圖標)。通過以上步驟,你可以在Debian系統上成功安裝并配置Apache或Nginx Web服務器,支持虛擬主機和HTTPS加密,滿足基本的網站托管需求。