如何在 Ubuntu 18.04 上安装 Apache Web 服务器如何在 Ubuntu 18.04 上安装 Apache Web 服务器如何在 Ubuntu 18.04 上安装 Apache Web 服务器如何在 Ubuntu 18.04 上安装 Apache Web 服务器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 上安装 Apache Web 服务器

介绍

Apache HTTP 服务器是世界上使用最广泛的 Web 服务器。它提供了许多强大的功能,包括可动态加载的模块、强大的媒体支持以及与其他流行软件的广泛集成。

在本指南中,您将学习如何在 Ubuntu 18.04 服务器上安装 Apache Web 服务器。本指南还概述了有关重要 Apache 文件和目录的信息。

先决条件

在开始本指南之前,您应该有一个普通的非 root 用户,并且在您的服务器上配置了 sudo 权限。此外,您将需要启用基本防火墙以阻止非必要端口。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南了解如何配置普通用户帐户并为您的服务器设置防火墙。

创建帐户后,以非根用户身份登录以开始。

第 1 步 — 安装 Apache

Apache 在 Ubuntu 的默认软件存储库中可用,因此可以使用传统的包管理工具安装它。

让我们首先更新本地包索引以反映最新的上游更改:

  1. sudo apt update

然后,安装 apache2 包:

  1. sudo apt install apache2

确认安装后,apt 将安装 Apache 和所有必需的依赖项。

第 2 步 — 调整防火墙

在测试 Apache 之前,有必要修改防火墙设置以允许外部访问默认 Web 端口。如果您按照先决条件中的说明进行操作,则应该配置 UFW 防火墙以限制对您的服务器的访问。

在安装期间,Apache 向 UFW 注册自己以提供一些可用于启用或禁用通过防火墙访问 Apache 的应用程序配置文件。

通过运行以下命令列出 ufw 应用程序配置文件:

  1. sudo ufw app list

这将返回应用程序配置文件列表:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

此列表表明 Apache 有三个可用的配置文件:

  • Apache:此配置文件仅打开端口 80(正常、未加密的网络流量)
  • Apache Full:此配置文件同时打开端口 80(正常、未加密的网络流量)和端口 443(TLS/SSL 加密流量)
  • Apache Secure:此配置文件仅打开端口 443(TLS/SSL 加密流量)

建议您启用限制最严格的配置文件,该配置文件仍将允许您配置的流量。由于您尚未在本指南中为您的服务器配置 SSL,因此您只需要允许端口 80 上的流量:

  1. sudo ufw allow 'Apache'

通过检查状态来验证此更改:

  1. sudo ufw status

现在允许的 HTTP 流量将显示在输出中:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

Apache 配置文件现已激活,可以访问 Web 服务器。

第 3 步 — 检查您的 Web 服务器

在安装过程结束时,Ubuntu 18.04 启动 Apache。 Web 服务器应该已经启动并正在运行。

检查 systemd 初始化系统以确保服务正在运行:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2021-09-28 16:52:56 UTC; 1min 14s ago Main PID: 9409 (apache2) Tasks: 55 (limit: 4915) CGroup: /system.slice/apache2.service ├─9409 /usr/sbin/apache2 -k start ├─9410 /usr/sbin/apache2 -k start └─9411 /usr/sbin/apache2 -k start

此输出表明服务已成功启动。但是,验证这一点的最佳方法是从 Apache 请求页面。

您可以通过您的 IP 地址访问默认的 Apache 登录页面以确认该软件是否正常运行。如果您不知道服务器的 IP 地址,您可以通过几种不同的方式从命令行获取它。

在服务器的命令提示符处运行以下命令:

  1. hostname -I

您将收到一些由空格分隔的地址。您可以在您的网络浏览器中尝试每一个,以检查它们是否有效。

另一种方法是运行以下命令,它应该为您提供您的公共 IP 地址,因为它是从 Internet 上的另一个位置识别的:

  1. curl -4 icanhazip.com

获得服务器的 IP 地址后,将其输入浏览器的地址栏:

http://your_server_ip

您应该会收到默认的 Ubuntu 18.04 Apache 网页:

此网页表明 Apache 工作正常。它还包括有关重要 Apache 文件和目录位置的一些基本信息。

第 4 步 — 管理 Apache 进程

现在您已经启动并运行了 Web 服务器,让我们回顾一些基本的管理命令。

您可以使用以下命令停止您的网络服务器:

  1. sudo systemctl stop apache2

要在 Web 服务器停止时启动它,请运行以下命令:

  1. sudo systemctl start apache2

您可以通过运行以下命令停止然后重新启动该服务:

  1. sudo systemctl restart apache2

如果您只是进行配置更改,Apache 通常可以在不断开连接的情况下重新加载。为此,请执行以下命令:

  1. sudo systemctl reload apache2

默认情况下,Apache 配置为在服务器启动时自动启动。如果这不是您想要的,您可以使用以下命令禁用此行为:

  1. sudo systemctl disable apache2

或者,要启用或重新启用服务以在引导时启动,请运行以下命令:

  1. sudo systemctl enable apache2

当服务器再次启动时,Apache 现在应该会自动启动。

第 5 步 — 设置虚拟主机(推荐)

使用 Apache Web 服务器时,您可以使用虚拟主机(类似于 Nginx 中的服务器块)来封装配置详细信息,并从一台服务器托管多个域。对于我们的示例,我们将设置一个名为 your_domain 的域,但您应该将其替换为您自己的域名。要了解有关使用 DigitalOcean 设置域名的更多信息,请阅读我们的 DigitalOcean DNS 简介。

Ubuntu 18.04 上的 Apache 默认启用一个服务器块,该服务器块配置为提供来自 /var/www/html 目录的文档。虽然这适用于单个站点,但如果您托管多个站点,它可能会变得笨拙。不要修改 /var/www/html,而是在 /var/www 中为您的域网站创建一个目录结构,留下 /var/www/html 将作为默认目录提供服务。

为 your_domain 创建目录,如下所示:

  1. sudo mkdir /var/www/your_domain

接下来,使用 $USER 环境变量分配目录的所有权:

  1. sudo chown -R $USER:$USER /var/www/your_domain

如果你没有修改你的 unmask 值,你的 web roots 的权限应该是正确的,但是你可以通过输入以下内容来确保:

  1. sudo chmod -R 755 /var/www/your_domain

接下来,使用 nano 或您喜欢的编辑器创建示例 index.html 页面:

  1. nano /var/www/your_domain/index.html

在内部,添加以下示例 HTML:

<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

完成后保存并关闭文件。如果您使用了 nano,您可以通过按 CTRL + X、Y 和 ENTER 退出。

为了让 Apache 提供这些内容,有必要使用正确的指令创建一个虚拟主机文件。不要直接修改位于 /etc/apache2/sites-available/000-default.conf 的默认配置文件,而是在 /etc/apache2/sites-available/< 创建一个新配置文件mark>your_domain.conf:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

添加以下配置块,它与默认配置类似,但针对您的新目录和域名进行了更新:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

请注意,我们已将 DocumentRoot 更新为我们的新目录,将 ServerAdmin 更新为 your_domain 站点管理员可以访问的电子邮件。我们还添加了两个指令:ServerName,它建立了应该匹配这个虚拟主机定义的基本域,以及 ServerAlias,它定义了应该匹配的更多名称,就好像他们是基本名称。

完成后保存并关闭文件。

接下来,使用 a2ensite 工具启用该文件:

  1. sudo a2ensite your_domain.conf

禁用 000-default.conf 中定义的默认站点:

  1. sudo a2dissite 000-default.conf

现在测试配置错误:

  1. sudo apache2ctl configtest

您应该收到以下输出:

Output
Syntax OK

重新启动 Apache 以实施您的更改:

  1. sudo systemctl restart apache2

Apache 现在应该为您的域名提供服务。您可以通过导航到 http://your_domain 来测试它,您应该会收到如下内容:

第 6 步 – 熟悉重要的 Apache 文件和目录

既然您知道如何管理 Apache 服务本身,您应该花几分钟时间熟悉一些重要的目录和文件。

内容

  • /var/www/html:实际的 Web 内容,默认情况下仅包含您之前看到的默认 Apache 页面,由 /var/www/html 提供 目录。这可以通过更改 Apache 配置文件来更改。

服务器配置

  • /etc/apache2:Apache 配置目录。所有 Apache 配置文件都驻留在此处。
  • /etc/apache2/apache2.conf:主要的 Apache 配置文件。可以修改它以更改 Apache 全局配置。该文件负责加载配置目录中的许多其他文件。
  • /etc/apache2/ports.conf:此文件指定 Apache 将侦听的端口。默认情况下,Apache 在端口 80 上侦听,并在启用提供 SSL 功能的模块时另外在端口 443 上侦听。
  • /etc/apache2/sites-available/:可以存放每个站点虚拟主机的目录。 Apache 不会使用在此目录中找到的配置文件,除非它们链接到 sites-enabled 目录。通常,所有服务器块配置都在此目录中完成,然后通过使用 a2ensite 命令链接到其他目录来启用。
  • /etc/apache2/sites-enabled/:启用的per-site虚拟主机存放目录。通常,这些是通过使用 a2ensite 链接到 sites-available 目录中的配置文件来创建的。 Apache 在启动或重新加载时读取此目录中的配置文件和链接以编译完整的配置。
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/:这些目录与 sites- 有相同的关系available 和 sites-enabled 目录,但用于存储不属于虚拟主机的配置片段。 conf-available 目录中的文件可以使用 a2enconf 命令启用,使用 a2disconf 命令禁用。
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/:这些目录分别包含可用和启用的模块。以 .load 结尾的文件包含加载特定模块的片段,而以 .conf 结尾的文件包含这些模块的配置。可以使用 a2enmod 和 a2dismod 命令启用和禁用模块。

服务器日志

  • /var/log/apache2/access.log:默认情况下,除非 Apache 配置为其他方式,否则对 Web 服务器的每个请求都会记录在此日志文件中。
  • /var/log/apache2/error.log:默认情况下,所有错误都记录在这个文件中。 Apache 配置中的 LogLevel 指令指定错误日志将包含多少详细信息。

结论

现在您已经安装了 Apache Web 服务器,对于可以提供的内容类型以及可以用来创建更丰富体验的技术,您有很多选择。

如果您想构建一个更完整的应用程序堆栈,您可以阅读这篇关于如何在 Ubutnu 18.04 上使用 Let's Encrypt 保护 Apache 的文章。

©2015-2025 艾丽卡 support@alaica.com