注:

安装 Apache Web Server

简介

Apache 自 1993 年以来一直在积极开发,随着时间的推移已成为世界上最受欢迎的 Web 服务器之一。Apache Web 服务器是 LAMP(Linux、Apache、Oracle MySQL 和 Perl/PHP)软件堆栈的关键组件,目前仍在广泛使用。

Apache Web 服务器直接从 Oracle Linux 8 或更高版本的 Application Streams 系统信息库中提供,并且易于部署和配置。

先决条件

目标

在本教程结束时,您应该能够完成以下工作:

安装和配置 Web 服务器软件包

  1. 安装 httpd 软件包及其相关项。

    sudo dnf install httpd
    
  2. 启用和启动 httpd 服务。

    此命令启用并启动 httpd 服务以供立即使用,并在系统重新引导后自动启动该服务:

    sudo systemctl enable --now httpd.service
    

    要检查服务的状态,请键入:

    sudo systemctl status httpd
    
  3. (可选)如果使用定制防火墙配置文件或 Oracle Cloud Infrastructure 实例,请打开 Apache Web 服务 (80) 的防火墙端口。

    这些命令为 Apache Web 服务启用防火墙端口并重新加载默认防火墙服务:

    sudo firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --reload
    
  4. 测试部署。

    使用 Web 浏览器,转到系统的域名或 IP 地址,例如 http://myserver.example.com.Apache Web 服务器将打开默认测试页。

配置 Apache

要更改 Web 服务器的根路径,请不要直接编辑 /etc/httpd/conf/httpd.conf 文件。而应作为首选方法在 /etc/httpd/conf.d 目录中创建特定于站点的配置文件。

在以下示例中,创建文件 /etc/httpd/conf.d/example.com.conf 以包含虚拟主机的配置。

  1. 通过在 /etc/httpd/conf.d/example.com.conf 中添加以下信息创建虚拟主机:

    收听 *:80

    <VirtualHost *:80>

    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com/html/

    ErrorLog /var/log/httpd/example.com_error.log
    CustomLog /var/log/httpd/example.com_access.log 组合

    </VirtualHost>

    ServerNameServerAlias 可以是可用于访问服务的主机名、域名或 IP 地址。

  2. 创建文档根文件夹。

    根文件夹托管 Apache 将提供给浏览器的网页。

    sudo mkdir -p /var/www/example.com/html
    sudo echo "example.com" > /var/www/example.com/html/index.html
    sudo chown -R apache:apache /var/www/example.com/html
    

    /var/www directory 中启用了 SELinux 且未提供页面的系统上,必须将正确的安全上下文应用于 DocumentRoot 目录。例如,要提供 /mnt/example.com 目录中的网页,请键入:

    sudo semanage fcontext -a -t httpd_sys_content_t "/mnt/example.com(/.*)?"
    sudo restorecon -Rv /mnt/example.com/
    
  3. 应用您的配置。

    sudo systemctl restart httpd
    

保护 Web 服务

作为最佳做法,使用 HTTPS 保护 Web 浏览器与 Apache 服务器之间的所有通信安全。对于安全设置,需要 TLS 证书。

  1. 配置 TLS/SSL 证书。

注:
Oracle 强烈建议您使用已由外部证书颁发机构 (Certificate Authority, CA) 签名的 TLS 证书。有关更多信息,请参见Oracle Linux: Managing Certificates and Public Key Infrastructure

  1. 安装适用于 Apache 的 HTTPS 附加组件。

    sudo dnf install mod_ssl
    sudo systemctl restart httpd
    
  2. 更新 Apache 配置。例如,在 /etc/httpd/conf.d/example.com.conf 中,添加以下配置:

    收听 *:443

    <VirtualHost *:443>

    ServerName example.com
    ServerAlias www.example.com

    SSLEngine,位于 SSLCertificateFile /etc/pki/tls/private/certificate.crt
    SSLCertificateKeyFile /etc/pki/tls/private/private.key

    DocumentRoot /var/www/example.com/html/

    ErrorLog /var/log/httpd/example.com_error.log
    CustomLog /var/log/httpd/example.com_access.log 组合

    </VirtualHost>

  3. 将 HTTP 请求重定向到 HTTPS。

    将现有 HTTP VirtualHost 配置替换为重定向,如下所示:

    <VirtualHost *:80>

    ServerName example.com
    ServerAlias www.example.com

    重定向“/” “https://example.com/”

    </VirtualHost>

  4. 重新启动 Apache 服务以加载新配置。

    sudo systemctl restart httpd
    
  5. (可选)配置防火墙。

    这些命令为 Apache HTTPS 服务启用防火墙端口 443 并重新加载默认防火墙服务:

    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    

更多学习资源

docs.oracle.com/learn 上浏览其他实验室,或者在 Oracle Learning YouTube 渠道上访问更多免费学习内容。此外,访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心