如何设置 Apache Linux 上的 Web 服务器

Apache 是最强大、最灵活、使用最广泛的开源软件,可通过 Internet 提供 Web 内容。 当客户端向网站域发出任何请求时,服务器通过提供 HTML 文件形式的内容来充当送货员。

最重要的是,Web 服务器,包括 Apache,支持Linux、Windows、Solaris、macOS等多种操作系统。因此,您可以轻松地将一台计算机变成托管多个网站的服务器。

这 Apache HTTP 服务器允许加载具有广泛支持软件和应用程序集成的模块。 本文详细介绍了一个安装和配置 Apache Linux 中的 HTTP 服务器。

第 1 步:安装 Apache Linux 上的服务器

在开始之前 Apache 安装时,您必须从官方存储库更新 Linux 软件包数据库。 这是一个必要的步骤,有助于避免任何安全漏洞,并包含软件包的最新功能。

更新系统存储库列表并安装 Apache 使用以下命令:

在 Ubuntu 和 Debian 上:

sudo apt-get update
sudo apt-get install apache -y

在 CentOS 上:

sudo yum update
sudo yum install httpd -y

在 Fedora:

sudo dnf update
sudo dnf install httpd -y

安装 Apache 在 Arch Linux 上,运行:

sudo pacman -Syu
sudo pacman -S apache

请注意,Ubuntu/Debian 发行版指的是 Apache 作为 apache2,而 CentOS 和 Fedora 将其称为 httpd。

第 2 步:验证 Apache 服务状态

在基于 Debian 的发行版中, Apache 服务自动启动。 您可以转到浏览器并输入您的本地 IP 地址以访问服务器的登录页面。 如果您不确定服务器的地址,请运行 主机名 -i 命令打印详细信息。

hostname -i

输出:

192.168.43.130

该页面确认安装成功。

https://<local_server_IPadd>

或者,运行以下命令来验证安装:

apache2 -version

输出:

如果您运行的是 CentOS,该服务将不会自动启动。 您可以通过执行以下命令手动启动服务:

sudo systemctl start httpd

查看服务状态,如下:

sudo systemctl status httpd

第 3 步:将防火墙配置为允许 Apache 服务器访问

另一个强制性步骤 Apache 配置使 Linux 中的 UFW 防火墙能够接受或允许流量通过默认端口 80 访问服务器。在安装期间,该服务使用一些应用程序配置文件向防火墙注册。 应用程序配置文件列表可帮助您启用/禁用 Apache 使用权。

使用以下命令列出所有 Apache 应用简介:

sudo ufw app list

输出:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

可用的配置文件代表:

  1. Apache:仅打开端口 80 以启用互联网上的未加密通信
  2. Apache 满的:打开端口 80 和 443 以进行未加密和安全的通信
  3. Apache 安全的:通过允许端口 443 上的流量通过 HTTPS 启用安全服务器访问

由于我们没有为服务器启用 SSL/TLS,我们将只允许 UFW 访问端口 80,如下所示:

sudo ufw allow 'Apache'

现在通过运行检查防火墙状态:

sudo ufw status

第 4 步:了解 Apache 目录和文件

成功安装和配置服务器后,每个初学者都必须知道服务器如何管理其网站及其内容。 这 /var/www/html 目录管理您要在服务器上托管的所有网站。

默认情况下,该目录包含您之前看到的网页。 Apache 允许您在此文件夹中创建不同的子目录来托管多个网站。

在基于 Ubuntu 和 Debian 的发行版中,主配置目录 Apache 服务器是 /etc/apache2,而对于 CentOS,它是 /etc/httpd. 因此,服务器的所有配置文件都在这些目录中可用。 一些最知名的文件/目录是:

  • /var/log/apache2/error.log:记录所有遇到的错误
  • /var/log/apache2/access.log:记录对服务器的所有访问请求
  • /etc/apache2/sites-available: 包含虚拟主机的目录
  • /etc/apache2/sites-enabled:商店准备为每个虚拟主机提供网站服务。 如果不使用链接站点可用目录中的配置文件,它就无法工作 a2ensite 命令。

设置虚拟主机的示例

Apache 服务器安装会创建一个默认目录 /var/www/html 在所有 Linux 发行版中。 此目录包含您网站的所有文件,但如果您想在同一台服务器上托管多个网站,它就无法工作。

要为多个域提供服务,您可以使用虚拟主机并在 /var/www 文件夹,如下:

sudo mkdir /var/www/host_example

使用 chown 更改目录的所有权和文件权限。

sudo chown -R $current_user:$current_user /var/www/host_example
sudo chmod -R 755 /var/www/host_example

现在打开 /var/www/host_example/html/content.html 在您喜欢的编辑器中创建文件并复制/粘贴以下 HTML:

<html>
<head>
<title>Welcome to host_example!</title>
</head>
<body>
<h1>You are running host_example on Ubuntu 18.04!</h1>
</body>
</html>

Apache 创建一个配置文件夹,用作存储位置以包含虚拟主机的记录。 默认配置文件是 /etc/apache2/sites-available/000-default.conf. 但是,您可以根据您的域名创建一个新文件,然后复制/粘贴默认文件中可用的配置块。

使用您选择的文本编辑器编辑文件,并使用您的域名和新目录进行更新,如下所示:

<VirtualHost *:80>
ServerAdmin [email protected]_example
ServerName host_example
ServerAlias www.host_example
DocumentRoot /var/www/host_example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

激活您的域配置文件

域配置文件 host_example.conf 激活需要使用 a2ensite。

sudo a2ensite host_example.conf

上面的输出显示了禁用默认配置文件(000-default.conf)的要求:

sudo a2dissite 000-default.conf

现在重新启动 apache 服务以加载更改。

sudo systemctl restart apache2

转到浏览器并导航到域名以检查它是否为您的网站提供服务:

https://host_example

测试配置错误

apache2ctl 实用程序允许您检查任何配置错误 Apache 服务器。 以下命令必须返回 语法OK 输出以验证成功的无错误配置:

sudo apache2ctl configtest

输出:

Syntax OK

在 Linux 服务器上托管多个网站 Apache

上面的教程展示了模块化和易于安装和配置 Apache 服务器。 服务器的多功能性允许您根据需要配置设置和托管网站。 虚拟主机设置的用例展示了配置文件如何工作和交互。

您可能还注意到,具体细节/文件夹可能会根据您的 Linux 发行版和 Apache 版本。 最后, Apache 管理命令用于以优化的方式管理、启动或重新加载服务器服务。 您还可以找到一些其他 Linux 服务器来托管您的网站。