如何在 Fedora 40 或 39 上安装 Apache HTTPD

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) 登录页面:

  1. 打开您的网络浏览器。
  2. 导航至 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 环境。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论