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
可用的配置文件代表:
- Apache:仅打开端口 80 以启用互联网上的未加密通信
- Apache 满的:打开端口 80 和 443 以进行未加密和安全的通信
- 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 服务器来托管您的网站。