如何在 Linux 上设置 Apache Web 服务器
在 Linux 服务器上托管网站并不一定那么困难。不是阿帕奇。以下是在 Linux 上安装和配置 Apache 服务器的方法。
Apache 是最强大、最灵活且使用最广泛的开源软件,可通过互联网提供 Web 内容。当客户端向网站域发出任何请求时,服务器充当送货员,以 HTML 文件形式提供可用的内容。
最重要的是,包括 Apache 在内的 Web 服务器支持 Linux、Windows、Solaris、macOS 等多种操作系统。因此,您可以轻松地将一台计算机变成托管多个网站的服务器。
Apache HTTP 服务器允许加载具有对软件和应用程序集成的广泛支持的模块。本文详细介绍了 Linux 中 Apache HTTP 服务器的安装和配置。
第 1 步:在 Linux 上安装 Apache 服务器
在开始安装 Apache 之前,您必须从官方存储库更新 Linux 软件包数据库。这是必要的步骤,有助于避免任何安全漏洞并将最新功能包含到软件包中。
使用以下命令更新系统存储库列表并安装 Apache:
在 Ubuntu 和 Debian 上:
sudo apt-get update
sudo apt-get install apache -y
在 CentOS 上:
sudo yum update
sudo yum install httpd -y
在费多拉上:
sudo dnf update
sudo dnf install httpd -y
要在 Arch Linux 上安装 Apache,请运行:
sudo pacman -Syu
sudo pacman -S apache
请注意,Ubuntu/Debian 发行版将 Apache 称为 apache2,而 CentOS 和 Fedora 将其称为 httpd。
步骤 2:验证 Apache 服务状态
在基于 Debian 的发行版上,Apache 服务会自动启动。您可以在浏览器中输入您的本地IP地址来访问服务器的登陆页面。如果您不确定服务器的地址,请运行hostname -i 命令来打印详细信息。
hostname -i
输出 :
192.168.43.130
该页面确认安装成功。
http://<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 Full:打开端口 80 和 443 以进行未加密的安全通信
Apache Secure:通过允许端口 443 上的流量,实现通过 HTTPS 的安全服务器访问
由于我们没有为服务器启用 SSL/TLS,因此我们将仅允许在端口 80 上进行 UFW 访问,如下所示:
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 服务器安装在所有 Linux 发行版中都会创建一个默认目录 /var/www/html。该目录包含您网站的所有文件,但如果您想在同一服务器上托管多个网站,则该目录无法工作。
要服务多个域,您可以使用虚拟主机并在 /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 admin@host_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
转到浏览器并导航到域名以检查它是否为您的网站提供服务:
http://host_example
测试配置错误
apache2ctl 实用程序允许您检查 Apache 服务器的任何配置错误。以下命令必须返回 Syntax OK 输出以验证配置是否成功且无错误:
sudo apache2ctl configtest
输出 :
Syntax OK
使用 Apache 在 Linux 服务器上托管多个网站
上面的教程展示了安装和配置 Apache 服务器的模块化性和易用性。服务器的多功能性允许您根据您的要求配置设置和托管网站。虚拟主机设置的用例显示了配置文件如何工作和交互。
您可能还注意到,具体信息/文件夹可能会根据您的 Linux 发行版和 Apache 版本而变化。最后,Apache 管理命令可以以优化的方式管理、启动或重新加载服务器服务。您还可以找到一些其他 Linux 服务器来托管您的网站。