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 upgrade 来更新所有软件包。–refresh 选项可确保您从存储库获取最新信息。在进入下一步之前,务必完成此过程,以保持系统完整性和平稳运行。
通过 DNF 命令安装 Apache(HTTPD)
如果您的系统已更新,那么安装 Apache(也称为 HTTPD)就很简单了。Fedora 使用 DNF 包管理器来完成此类任务。
在你的终端中运行:
sudo dnf install httpd
此命令将获取 Apache 并将其安装在 Fedora 系统上。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):
执行以下命令打开用于 HTTP 流量的端口 80:
sudo firewall-cmd --permanent --add-port=80/tcp
此命令将 Firewalld 配置为允许端口 80 上的传入 TCP 流量,该端口通常用于未加密的网络流量。
打开端口 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:
要停止 Apache 服务器,请使用:
sudo systemctl stop httpd
此命令将暂停 Apache 服务,直到其再次启动。
启动Apache:
要启动 Apache 服务器,请使用:
sudo systemctl start httpd
此命令激活 Apache 服务,使其准备好提供 Web 内容。
重新启动 Apache:
要重新启动 Apache 服务器,请使用:
sudo systemctl restart httpd
重新启动对于应用配置更改或从非严重错误中恢复很有用。
重新加载Apache:
要重新加载 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 证书。自动化此过程对于维护安全的网站至关重要。
安装 Cronie 执行 Cron 任务
如果您的 Fedora 系统上没有安装 cron 作业管理器 Cronie,请使用以下命令进行安装:
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
要更新 Apache 以及其他系统包,请使用:
sudo dnf update --refresh
此命令刷新包数据库并更新所有已安装的包,包括 Apache。
更新前注意事项
执行更新之前请务必备份系统或创建图像,以防止任何潜在问题。
从 Fedora 中删除(卸载)Apache
在需要从系统中删除 Apache 的情况下,请按照以下步骤操作:
禁用并停止 Apache
首先,禁用并停止 Apache 服务:
sudo systemctl disable httpd --now
此命令停止 Apache 服务并阻止其在启动时自动启动。
卸载 Apache
要从系统中删除 Apache,请执行:
sudo dnf remove httpd
此命令卸载 Apache 包。
清理剩余文件
卸载后,删除 Apache 配置目录中的所有残留文件:
sudo rm -R /etc/httpd/
此步骤可确保所有与 Apache 相关的文件从系统中完全删除。
结论
通过 AppStream 在 Fedora 上安装 Apache HTTPD,您将获得一个功能强大且可靠的 Web 服务器,该服务器与您的 Fedora 系统完美集成。dnf 包管理器可确保您的安装顺利进行,并且可以轻松管理更新。安装后,请考虑探索 Apache 的广泛配置选项,以根据您的特定需求定制服务器,无论是用于服务静态网站、运行动态应用程序还是管理复杂的 Web 环境。