Apache HTTP Server (HTTPD) 是世界上使用最廣泛的 Web 伺服器之一,以其靈活性、強大的效能和廣泛的設定選項而聞名。它能夠提供靜態和動態內容,其模組化設計支援多種功能,例如 SSL/TLS 加密、URL 重定向、身份驗證等。 Apache HTTPD 在穩定性、安全性和可擴展性至關重要的環境中特別受歡迎。它是託管網站和應用程式的絕佳選擇,範圍從小型個人專案到大型企業解決方案。
在 Fedora 40 或 39 上,可以透過 dnf 套件管理器使用 Fedora 的 AppStream 輕鬆安裝 Apache HTTPD。此方法提供了一個簡單的安裝過程,可以存取 Fedora 官方儲存庫中維護的最新版本,確保您擁有安全且最新的 Web 伺服器。本指南將引導您使用命令列終端機安裝 Apache HTTPD,從而允許您在 Fedora 上設定和設定 Web 伺服器。
在安裝 Apache 之前更新 Fedora 軟體包
首先,更新您的 Fedora 系統可確保它運行最新的軟體,這對於相容性和安全性至關重要。
打開終端機並執行命令:
sudo dnf upgrade --refresh
此命令將 sudo 的管理權限與 dnf 升級的使用結合起來,以更新所有軟體包。 –refresh 選項可確保您從儲存庫中取得最新資訊。在進入下一步之前完成此過程非常重要,以保持系統完整性和平穩運行。
透過DNF指令安裝Apache(HTTPD)
當您的系統是最新的時,安裝 Apache(也稱為 HTTPD)就很簡單了。 Fedora 使用 DNF 套件管理器來完成此類任務。
在您的終端中,運行:
sudo dnf install httpd
此命令會在您的 Fedora 系統上取得並安裝 Apache。 DNF 處理依賴關係和配置,簡化了安裝。過程通常很快,完成後 Apache 就可以使用了。
啟用 Apache (HTTPD) 服務
安裝 Apache 後,下一步是啟動並啟用該服務以確保其在啟動時運行。如果沒有自動激活,請使用以下命令:
sudo systemctl start httpd
sudo systemctl enable httpd
“sudo systemctl start httpd”啟動 Apache 服務,“sudo systemctl enable httpd”將其設定為在啟動時啟動。這種兩步驟方法可確保 Apache 處於活動狀態並持續可用。
或者,您可以組合以下步驟:
sudo systemctl enable httpd --now
帶有 sudo systemctl enable httpd 的 –now 標誌會立即啟動 Apache 並將其配置為在啟動時啟動,從而簡化了該過程。
驗證 Apache (HTTPD) 服務狀態
最後,驗證 Apache 的狀態:
systemctl status httpd
該命令提供 Apache 的運行狀態。輸出包括服務的當前狀態和任何錯誤訊息,這對於故障排除至關重要。定期檢查這一點可以幫助您在 Fedora 系統上維護穩定且功能齊全的 Apache 設定。
為 Apache 配置 Firewalld 規則
開啟 HTTP 和 HTTPS 連接埠
在 Fedora 上安裝 Apache (HTTPD) 後,必須設定 Firewalld 以允許連接埠 80 (HTTP) 和 443 (HTTPS) 上的流量。這些步驟對於 Web 應用程式的安全性和可存取性至關重要。
開啟連接埠 80 (HTTP):
執行下列命令開啟連接埠 80,該連接埠用於 HTTP 流量:
sudo firewall-cmd --permanent --add-port=80/tcp
此命令將 Firewalld 配置為允許連接埠 80 上的傳入 TCP 流量,該連接埠通常用於未加密的 Web 流量。
開啟連接埠 443 (HTTPS):
若要允許安全、加密的流量,請使用下列命令開啟連接埠 443:
sudo firewall-cmd --permanent --add-port=443/tcp
連接埠 443 用於 HTTPS 流量,提供用戶端和伺服器之間的加密通訊。
應用防火牆變更:
設定規則後,透過重新載入 Firewalld 來套用它們:
sudo firewall-cmd --reload
重新載入防火牆可確保所有變更立即生效並生效。
安全考慮
了解這些變化的安全影響至關重要。僅打開必要的連接埠可以最大限度地減少潛在的漏洞,保護您的應用程式免受未經授權的存取和威脅。
驗證 Apache 的可訪問性
若要確認設定成功,請造訪 Apache (HTTPD) 登入頁面:
- 開啟您的網頁瀏覽器。
- 導覽至 http://localhost 或 http:// 。
如果配置正確,將出現 Apache 預設頁面,確認伺服器的運作狀態。
解決存取問題
如果您無法存取著陸頁,請考慮以下步驟:
- 檢查防火牆規則的準確性。
- 檢查 Apache 服務狀態。
- 檢查伺服器配置是否有錯誤。
解決這些問題將幫助您識別並解決阻礙存取 Fedora 上的 Apache 的任何問題。
在 Apache 上建立虛擬主機
為虛擬主機建立和配置目錄
首先在 Fedora Linux 上為虛擬主機建立目錄。該目錄將作為您網站檔案的根目錄。對於「example.com」這樣的網域,請使用以下命令:
sudo mkdir /var/www/example.com
將“example.com”替換為您的實際網域。該目錄將保存所有網站文件,包括 HTML、圖像和腳本。出於組織和安全的目的,建議為不同的虛擬主機建立單獨的目錄。
設定目錄的所有權和權限,以便 Apache 可以存取它:
sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com
第一個指令將目錄所有權變更為 Apache 使用者和群組,第二個指令設定必要的權限。
在此目錄中建立一個index.html 檔案。該文件是訪客看到的第一頁。使用 Nano 等文字編輯器建立此文件:
sudo nano /var/www/example.com/index.html
在編輯器內,您可以新增以下 HTML 結構:
<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Welcome to Example Domain</h1>
<p>This is a sample page for the domain example.com.</p>
</body>
</html>
自訂此 HTML 以滿足您網站的需求。使用 Ctrl + X,然後按 Y 和 Enter 鍵儲存並退出編輯器。
建立虛擬主機
為 Apache 設定目錄
首先,建立sites-available 和sites-enabled 目錄:
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
這些目錄有助於組織虛擬主機配置。現在,編輯 Apache 設定檔:
sudo nano /etc/httpd/conf/httpd.conf
在文件末尾添加:
#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
使用 Ctrl + O 和 Ctrl + X 儲存並退出。
配置您的虛擬主機
為您的網域建立設定檔:
sudo nano /etc/httpd/sites-available/example.com.conf
在該檔案中,新增以下配置,並根據需要調整 ServerName、ServerAlias 和 DocumentRoot:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example.com/
</VirtualHost>
修改存取權限
修改Apache的存取權限以允許公共存取。編輯主設定檔:
sudo nano /etc/httpd/conf/httpd.conf
在末尾添加這些行:
<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
使用 Ctrl + O 和 Ctrl + X 儲存並退出。
啟用虛擬主機
建立符號連結以啟用虛擬主機:
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/
重新啟動 Apache 以套用變更:
sudo systemctl restart httpd
重新啟動 Apache 後,在 Web 瀏覽器中造訪 http://example_domain。如果您尚未註冊域名,請使用伺服器的 IP 位址。您應該會看到先前建立的登陸頁面。
管理 Apache (HTTPD) 服務0
Apache 伺服器日誌
Apache 伺服器日誌對於監控和故障排除至關重要。預設情況下它們位於 /var/log/httpd/ 中;標準檔案名稱是 access.log(表示存取日誌)和 error.log(表示錯誤日誌)。但是,您可以在虛擬主機設定檔中自訂這些檔案名稱。
自訂日誌檔名
若要變更日誌檔案名,請編輯虛擬主機設定檔。以下是自訂日誌名稱的範例:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example.com
# Change access log to custom-access.log
CustomLog /var/log/httpd/custom-access.log combined
# Change error log to custom-error.log
ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>
此配置將 custom-access.log 和 custom-error.log 設定為存取日誌和錯誤日誌的新檔案名稱。請記住在配置自訂日誌名稱時提供正確的檔案路徑。
用於服務管理的 Apache 命令
管理 Apache 服務涉及一組命令,可讓您控制其操作:
停止阿帕契:
若要停止 Apache 伺服器,請使用:
sudo systemctl stop httpd
此命令將暫停 Apache 服務,直到它再次啟動。
啟動阿帕契:
若要啟動 Apache 伺服器,請使用:
sudo systemctl start httpd
此命令啟動 Apache 服務,使其準備好提供 Web 內容。
重新啟動阿帕契:
若要重新啟動 Apache 伺服器,請使用:
sudo systemctl restart httpd
重新啟動對於應用程式設定變更或從非嚴重錯誤中復原非常有用。
重新加載阿帕奇:
若要重新載入 Apache 伺服器,請使用:
sudo systemctl reload httpd
重新載入會套用配置更改,而不會中斷正在執行的服務。
在啟動時停用 Apache:
若要防止 Apache 在啟動時自動啟動,請使用:
sudo systemctl disable httpd
此命令將 Apache 從系統啟動時啟動的服務清單中刪除。
在啟動時啟用 Apache:
若要將 Apache 設定為在啟動時自動啟動,請使用:
sudo systemctl enable httpd
這可確保 Apache 在系統啟動時啟動,進而提供一致的 Web 服務可用性。
使用 Let's Encrypt SSL 免費憑證保護 Apache
安裝 Certbot 以實現 SSL/TLS 憑證自動化
首先安裝 Certbot,這是一個用於自動取得和續訂 SSL/TLS 憑證的工具,可確保網站的 HTTPS 加密。若要安裝 Certbot,請執行:
sudo dnf install certbot python3-certbot-apache
為您的網域產生 SSL/TLS 憑證
安裝後,使用以下命令為您的網域產生 SSL/TLS 憑證:
sudo certbot --apache -d example.com
將“example.com”替換為您的實際網域。
產生 SSL 憑證的替代命令
要進行全面的 SSL 設置,請使用以下命令:
sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
- –dry-run:在不更改系統的情況下測試憑證產生。
- –apache:表示憑證用於 Apache 伺服器。
- –agree-tos:同意 Let's Encrypt 的服務條款。
- –redirect:將 HTTP 流量重新導向到 HTTPS。
- –hsts:啟用 HTTP 嚴格傳輸安全,確保僅安全 HTTPS 連線。
- –staple-ocsp:啟動 OCSP 裝訂以驗證 SSL 憑證。
- –email:與憑證關聯的您的電子郵件地址。
- -d:證書的域名,此處為「www.example.com」。
設定 Apache 使用 SSL 憑證
若要設定 Apache,請開啟 SSL 設定檔:
sudo nano /etc/httpd/conf.d/ssl.conf
在此文件中,新增以下行,並將「example.com」替換為您的網域:
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
驗證和更新 SSL 憑證
安裝後,您的網站將從“HTTP://www.example.com”轉換為“HTTPS://www.example.com”,確保加密且安全的通訊。
設定自動證書續訂
若要保持 SSL 憑證更新,請為 Certbot 續約設定 cron 作業。首先測試更新過程:
sudo systemctl restart httpd
此測試可確保續訂腳本在將其排程為 cron 作業之前正確執行。
sudo certbot renew --dry-run
SSL憑證續約與管理
驗證 SSL 憑證狀態
在自動化續訂流程之前,了解 SSL 憑證的當前狀態至關重要。若要檢查狀態,包括 Certbot 管理的所有憑證的到期日期,請使用下列命令:
sudo certbot certificates
此命令提供 Certbot 處理的所有 SSL 憑證的清單及其各自的到期日期。此資訊對於確認您的證書處於活動狀態並了解何時需要續訂至關重要。
自動續訂 SSL 憑證
為了確保HTTPS服務不間斷,必須定期更新SSL憑證。自動化此流程對於維護安全的網站至關重要。
為 Cron 作業安裝 Cronie
如果您的 Fedora 系統上未安裝 cronie(cron 作業管理器),請使用下列命令安裝它:
sudo crontab -e
Cronie 允許您安排 Certbot 續訂腳本等任務在指定的時間和間隔運行。
編輯 Cron 作業配置
安裝 Cronie 後,透過編輯 cron 作業配置來排程 SSL 憑證續約:
sudo dnf install cronie
此命令將開啟 crontab 編輯器,您可以在其中新增排程任務。
安排續訂作業
在 crontab 編輯器中,新增以下行以安排更新命令每天執行兩次:
0 6,18 * * * certbot renew --quiet
此 cron 作業設定為每天上午 6:00 和下午 6:00 執行 certbot renew 命令。 –quiet 選項可確保 Certbot 靜默運行,而不會產生不必要的輸出。
了解 Certbot 的續約流程
Certbot 智慧地管理更新流程。它只嘗試續訂到期後 30 天內的證書。如果憑證不需要續訂,Certbot 將不會執行任何操作。這種效率可確保您的伺服器不會受到不必要的進程的負擔,並且您的 SSL 憑證始終是最新的。
設定此自動續約流程是維持持續 HTTPS 加密的最佳實踐,可確保您的網站保持安全並受到使用者和搜尋引擎的信任。
附加命令和提示
Apache 上的安全性目錄和文件
確保伺服器的安全性涉及為檔案和目錄設定適當的權限。過於寬鬆的設定可能會使您的伺服器面臨風險。
設定安全權限
對於 /var/www/example.com/ 下的目錄和文件,請使用以下命令:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;
這些命令將目錄設定為755(為所有者讀取、寫入、執行,為其他人讀取和執行),並將檔案設為644(為所有者讀取和寫入,為其他人讀取),這是標準的安全權限。
特定應用程式的特殊權限
請注意,某些應用程式(例如 phpBB)可能需要某些資料夾的 777 權限。始終根據應用程式要求調整權限。
全面的安全方法
請記住,設定權限只是安全性的一方面。實施 SSL 憑證和正確的防火牆配置對於強大的伺服器保護至關重要。
在 Fedora 上更新 Apache (HTTPD)
保持 Apache 處於最新狀態對於安全性和效能至關重要。
更新阿帕契
若要更新 Apache 以及其他系統軟體包,請使用:
sudo dnf update --refresh
此命令刷新包資料庫並更新所有已安裝的包,包括 Apache。
更新前註意事項
在執行更新之前,請務必備份系統或建立映像,以防止任何潛在問題。
從 Fedora 中刪除(卸載)Apache
對於需要從系統中刪除Apache的場景,請依照下列步驟操作:
禁用和停止 Apache
首先,停用並停止 Apache 服務:
sudo systemctl disable httpd --now
此命令停止 Apache 服務並防止其在引導時自動啟動。
卸載阿帕契
若要從系統中刪除 Apache,請執行:
sudo dnf remove httpd
此命令卸載 Apache 軟體包。
清理剩餘文件
卸載後,刪除Apache設定目錄中的所有殘留檔案:
sudo rm -R /etc/httpd/
此步驟可確保從系統中完全刪除所有與 Apache 相關的檔案。
結論
透過 AppStream 在 Fedora 上安裝 Apache HTTPD,您將獲得一個與您的 Fedora 系統完美整合的強大且可靠的 Web 伺服器。 dnf 套件管理器可確保您的安裝順利且更新易於管理。安裝後,請考慮探索 Apache 的廣泛設定選項,以根據您的特定需求自訂伺服器,無論是用於服務靜態網站、執行動態應用程式或管理複雜的 Web 環境。