1. 安裝Apache2
sudo apt update
sudo apt install apache2 -y
安裝完成后,Apache會自動啟動,通過瀏覽器訪問 http://服務器IP 應看到默認的Apache歡迎頁。
2. 配置防火墻(UFW)
sudo ufw allow 'Apache' # 允許Apache通過防火墻
sudo ufw status # 檢查狀態
3. 部署項目文件
- 自定義目錄:/var/www/
若需使用其他目錄(如/var/www/myproject),需確保Apache有權限訪問:
#myproject替換成你的項目名字
sudo mkdir -p /var/www/myproject
sudo chown -R $USER:$USER /var/www/myproject # 賦予當前用戶權限
sudo chmod -R 755 /var/www/myproject # 設置目錄權限
- 自定義html頁面
echo '<!DOCTYPE html>
<html>
<head><title>我的項目</title>
</head>
<body><h1>Hello World!</h1>
</body>
</html>' | sudo tee /var/www/myproject/index.html > /dev/null
4. 配置虛擬主機
為每個項目創建獨立的配置文件,避免沖突:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/myproject.conf
編輯配置文件:
sudo nano /etc/apache2/sites-available/myproject.conf
修改以下內容(示例):
<VirtualHost *:80>ServerAdmin admin@example.comServerName myproject.com # 或服務器IPDocumentRoot /var/www/myprojectErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined<Directory /var/www/myproject>Options Indexes FollowSymLinksAllowOverride All # 允許.htaccess覆蓋配置Require all granted</Directory>
</VirtualHost>
啟用配置并重啟Apache:
sudo a2ensite myproject.conf
sudo a2dissite 000-default.conf # 可選:禁用默認配置
sudo systemctl restart apache2 # 重啟Apache2
5. 測試與調試
- 檢查語法錯誤:
sudo apache2ctl configtest
以上就可以正常使用Http進行訪問了,如果要設置成Https看后續操作,不過我這個Https只是測試項目使用,因為我沒有域名,所以沒辦法申請Let’s Encrypt的受信任的證書。
設置Https訪問
- 安裝必要軟件
sudo apt update
sudo apt install apache2 openssl
- 生成自簽名SSL證書
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/apache-selfsigned.key \-out /etc/ssl/certs/apache-selfsigned.crt \-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
說明:
CN=localhost:本地測試時使用localhost作為通用名。
證書有效期為365天,到期后需重新生成。
- 啟用SSL模塊
sudo a2enmod ssl
sudo systemctl restart apache2
- 配置SSL虛擬主機
手動創建ssl配置文件:
sudo nano /etc/apache2/sites-available/localhost-ssl.conf
- 內容:
<VirtualHost *:443>ServerName localhostDocumentRoot /var/www/htmlSSLEngine onSSLCertificateFile /etc/ssl/certs/apache-selfsigned.crtSSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
- 啟用SSL虛擬主機
sudo a2ensite localhost-ssl.conf
sudo systemctl reload apache2
- 配置HTTP到HTTPS的重定向
修改默認虛擬主機配置
sudo nano /etc/apache2/sites-available/000-default.conf
- 添加以下內容:
<VirtualHost *:80>ServerName localhostRedirect permanent / https://localhost/
</VirtualHost>
啟用重寫模塊:
sudo a2enmod rewrite
sudo systemctl reload apache2
總結
- 自簽名證書:僅適用于本地測試,生產環境需使用受信任的證書(如Let’s Encrypt)。
- 重定向:通過修改Apache配置或.htaccess實現HTTP到HTTPS的自動跳轉。
- 信任證書:瀏覽器會提示證書不安全,本地測試時可忽略或手動信任。