如何在Ubuntu上安装Apache以管理您的流量

你是否正在寻找一个开源的Web服务器来处理你的高流量需求?在Ubuntu上安装Apache作为完美的解决方案!

Apache是最广泛使用的Web服务器,可以轻松处理大流量。在本教程中,你将学习如何在Ubuntu Linux服务器上安装Apache并设置虚拟主机。

今天就试试Apache,摆脱Web服务器的停机时间!

先决条件

本教程将进行实际演示。如果你想一起操作,请确保你有以下内容。

  • 一个Ubuntu服务器 – 本教程使用Ubuntu 20.04。
  • A user account with root privileges.

在Ubuntu服务器上安装Apache

Apache提供许多强大的功能,如动态可加载模块、多才多艺的配置系统和广泛的日志功能。要利用这些功能,首先在服务器上安装Apache。

默认情况下,Ubuntu仓库中提供了Apache软件包,你可以通过运行一个命令使用apt软件包管理器安装Apache。

1. 运行下面的apt update命令,确保服务器是最新的,并应用任何安全补丁。

sudo apt update -y
Updating Server Package Index

2. 运行以下apt-cache命令,搜索并列出系统中所有可用的Apache软件包。

sudo apt-cache search apache2

在下面的截图中,您可以看到所有可用的Apache软件包,最常见的包括:

  • apache2 – Apache HTTP服务器 – 这个软件包是标准的Apache web服务器。
  • libapache2-mod-php – 该软件包为Apache web服务器提供了PHP支持。
  • apache2-ssl-dev – 该软件包为Apache提供了SSL/TLS连接支持。
  • apache2-utils – 该软件包为Apache web服务器提供各种实用工具,如htpasswd用于创建基本认证的用户。
Listing Apache Packages

3. 运行以下apt install命令在服务器上安装Apache。

sudo apt install -y apache2
Installing Apache

4. 安装完软件包后,运行以下systemctl命令来启动Apache(apache2)。这个命令没有输出,但接下来的步骤中,你会检查Apache服务的状态。

sudo systemctl start apache2

5. 现在,运行以下命令来在启动时启用Apache,因为Ubuntu默认安装不会自动启动Apache服务。

sudo systemctl enable apache2
Enabling Apache Auto-Start on Boot Up

6. 接下来,运行以下systemctl命令来检查Apache(apache2)服务的状态

sudo systemctl status apache2

你会看到以下输出。活动(运行)状态表示Apache服务已启动并正常运行。

Check the status of the Apache service.

7. 运行以下命令来检查服务器上安装的Apache版本。

apache2 -version

截至撰写本文时,最新的稳定Apache版本是2.4.41,你的版本可能有所不同。

Checking Installed Apache Version

8. 最后,打开你喜欢的网络浏览器,访问你的Ubuntu服务器的IP地址或主机名(即,192.168.1.100)。

下面,你可以看到在安装过程中创建的默认Apache网页。此页面确认Apache已安装并按预期工作。

如果出现错误,请转到下一节并配置你的防火墙。

Verifying Apache Installation by Accessing Apache’s Default Page

配置UFW防火墙以保护Apache服务器

在前一节中,您从Apache服务器请求了一个网页,显示了默认的Apache网页。但如果您收到“连接被拒绝”的错误,如下所示呢?这个错误可能是由于防火墙阻止访问Apache服务器导致的。

Getting Connection Refused Error

为了解决这个连接错误,您需要配置防火墙以允许访问Apache服务器。默认情况下,Ubuntu安装包括一个称为UFW的防火墙,可以帮助保护服务器免受未经授权的访问。

1. 运行以下命令列出包含在UFW中的所有应用程序配置文件。

sudo ufw app list

您可以看到UFW中可用的不同应用程序:

  • Apache Full – 此配置文件允许访问Apache网络服务器所需的全部端口范围(端口80和443)。
  • Apache – 允许访问未安全的端口80的默认配置文件。

在生产环境中不应使用此配置文件,因为它不够安全。

  • Apache Secure – 此配置文件更安全,因为它仅限制访问TLS/SSL加密流量的端口(端口443)。
  • OpenSSH – 此配置文件允许访问SSH端口(端口22)以允许SSH连接。
Listing Application Profiles Available in UFW

2. 接下来,运行以下命令以启用(允许)Apache Full配置文件以及SSH

这些命令允许访问所有端口,在开发环境中非常有帮助。

sudo ufw allow 'Apache Full'
sudo ufw allow 'OpenSSH'
Enabling the Apache Full Profile along with SSH

也许您想禁用一个应用程序,将允许选项更改为禁用选项,像这样:sudo ufw disable ‘app_profile’

3. 运行以下ufw status命令以检查UFW防火墙的状态。

sudo ufw status verbose

下面,您可以看到可用的防火墙规则,表示Apache Full和OpenSSH可以从任何地方访问。

Checking UFW Firewall Status

4. 最后,打开您的Web浏览器并尝试从Apache服务器请求网页。这次,您将看到在安装过程中创建的默认Apache网页。

Verifying Apache Installation by Accessing Apache’s Default Page

设置虚拟主机以提供网站

您的Apache服务器已启动,现在是最令人兴奋的部分,托管您的Web应用程序。如何?您将在Ubuntu服务器上设置您的虚拟主机。虚拟主机是一个配置文件,允许您在单个具有单个IP地址的服务器上托管多个网站。

请注意,从教程的这一点开始创建文件和目录需要sudo访问权限。

开始设置虚拟主机:

1. 运行下面的命令创建一个名为/var/www/example.com的新目录。您将使用此目录存储网站的内容。将example.com替换为您要使用的实际域名。

此命令没有输出,但您可以通过运行以下命令验证目录:ls /var/www

sudo mkdir -p /var/www/example.com

2. 接下来,运行以下chown命令,将/var/www/example.com目录的所有权更改为您的用户帐户。此命令没有输出,但允许您管理网站内容。

sudo chown -R $USER:$USER /var/www/example.com

3. 运行下面的chmod命令,将/var/www/example.com目录的权限更改为755。此命令没有输出,但授予您的用户帐户对网站内容的读写访问权限。

sudo chmod -R 755 /var/www/example.com

4. 现在,在/var/www/example.com目录中使用您喜欢的编辑器创建一个名为index.html的文件。用下面的代码填充文件,保存更改并关闭文件。index.html文件作为您网站的默认页面。

下面的代码创建了一个显示文本“Hello World!Your virtual host is working!”的简单网页。

<html>
  <head>
    <title>Welcome to example.com!</title>
  </head>

  <body>
    <h1>Hello World! Your virtual host is working!</h1>
  </body>
</html>

5. 在/etc/apache2/sites-available目录中创建一个名为example.com.conf的新虚拟主机配置文件。

你可以编辑默认的 `/etc/apache2/sites-available/000-default.conf` 文件以包含你的新虚拟主机。但更好的做法是为你的网站创建一个新文件。这样做有助于保持你的配置文件的组织。

将以下配置复制/粘贴到 `example.com.conf` 文件中。但请确保用你的网站的实际值替换 `example.com` 和 `webmaster@localhost`。

保存更改并关闭文件。

<VirtualHost *:80>

  ServerAdmin webmaster@localhost

  ServerName example.com

  ServerAlias www.example.com

  DocumentRoot /var/www/example.com

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

6. 现在,运行以下每个命令来禁用默认虚拟主机文件并启用你的新虚拟主机文件。

默认虚拟主机文件默认已启用,除非你禁用默认虚拟主机文件,否则无法使用你的新虚拟主机文件。

# 禁用默认虚拟主机文件
sudo a2dissite 000-default
# 启用你的虚拟主机文件
sudo a2ensite example.com.conf
Disabling the Default Virtual Host File and Enabling your New Virtual Host

7. 运行以下命令来重新启动你的 Apache 服务器(`apache2`)以应用更改。service 命令。restart

sudo service apache2 restart

8. 最后,打开你的网络浏览器并访问你的网站(`example.com`)。

如果你的 Apache 服务器配置正确,你会在网络浏览器中看到相同的消息显示在下方。

Accessing the Hosted Website

Conclusion

在这个教程中,您已经学会了如何在Ubuntu上安装Apache,并设置虚拟主机以在单个服务器上为您的网站提供服务。此时,您现在可以有效地在您的Ubuntu服务器上托管多个网站。

这个教程作为入门,您可以考虑进一步使用Apache并配置其他功能。也许尝试设置 带SSL的虚拟主机 和密码保护 来保护您的Apache服务器?或者 添加自定义标头 到您的网站以控制用户请求?

Source:
https://adamtheautomator.com/install-apache-on-ubuntu/