Apache是世界上最受欢迎的Web服务器之一。 这是一个开放源代码和跨平台的HTTP服务器,可为互联网的很大一部分提供支持。 Apache提供了许多强大的功能,可以通过其他模块进行扩展。

本教程介绍了如何在Ubuntu 20.04上安装和管理Apache Web服务器。

先决条件

开始学习本教程之前,请确保您以用户的身份使用sudo权限登录

安装Apache

Apache包含在默认的Ubuntu存储库中。

安装非常简单。 在Ubuntu和Debian系统上,Apache软件包和服务称为apache2

运行以下命令以更新软件包索引并安装Apache:

sudo apt update
sudo apt install apache2

安装过程完成后,Apache服务将自动启动。

您可以输入以下内容来验证Apache是否正在运行:

sudo systemctl status apache2

输出应告诉您该服务正在运行,并已启用以在系统引导时启动:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-09 19:28:40 UTC; 36min ago
...

您已经在Ubuntu 20.04服务器上成功安装了Apache,然后就可以开始使用它了。

打开HTTP和HTTPs端口

Apache监听端口80(HTTP)和443(HTTPS)。 您必须在防火墙中打开这些端口,以便可以从Internet访问Web服务器。

假设您正在使用 UFW ,则可以通过启用“ Apache Full”配置文件来实现此目的,该配置文件包括两个端口的规则:

sudo ufw allow 'Apache Full'

验证更改:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)

验证Apache安装

要验证一切正常,请打开浏览器,输入服务器IP地址http://YOUR_IP_OR_DOMAIN/,您将看到默认的Ubuntu 20.04 Apache欢迎页面,如下所示:

该页面包含有关Apache配置文件,帮助程序脚本和目录位置的一些基本信息。

设置虚拟主机

虚拟主机是一种Apache配置指令,可让您在单个服务器上运行多个网站。 通常,虚拟主机用于描述一个网站。

Apache出厂时默认启用了一个虚拟主机。 指向服务器IP地址的所有域都将与默认虚拟主机匹配。 如果您要托管一个网站,则可以在/var/www/html中上传内容

如果您打算托管多个网站,则需要为每个网站创建虚拟主机配置。 在本部分中,我们将为域名“ example.com”建立一个网站。 您应该用域名替换“ example.com”。

第一步是创建文档根目录,该域名的网站文件将在其中存储和响应请求。 运行以下命令以创建目录

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

出于测试目的,请在域文档根目录内创建一个index.html文件:

/var/www/example.com/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

完成后保存并关闭文件。

为避免权限问题,将域文档根目录的所有权更改为apache用户(www-data):

sudo chown -R www-data: /var/www/example.com

下一步是为“ example.com”域创建虚拟主机配置。 最佳做法是将每个虚拟主机配置存储在单独的文件中。

Apache vhosts文件存储在/etc/apache2/sites-available目录中。 标准命名约定是根据域命名文件。

打开您的文本编辑器并创建以下文件:

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

Apache不会读取在/etc/apache2/sites-available目录中找到的配置文件,除非它们链接到/etc/apache2/sites-enabled目录。

要激活虚拟主机配置,请使用a2ensite命令创建符号链接

sudo a2ensite example.com

使用以下方法测试配置是否存在语法错误:

sudo apachectl configtest

如果没有错误,您将看到以下输出:

Syntax OK

重新启动Apache服务,以使更改生效:

sudo systemctl restart apache2

最后,要验证一切是否正常,请在浏览器中打开http://example.com

结论

我们向您展示了如何在Ubuntu 20.04上安装Apache。 您现在就可以开始部署应用程序,并将Apache用作Web或代理服务器。

如果您有任何问题或反馈,请随时发表评论。

该文章是以下系列的一部分。
该系列的其它文章:  

如何 在Ubuntu 20.04上安装MySQL

•如何在Ubuntu上安装Apache 20.04

如何在Ubuntu 20.04上安装PHP

如何在Ubuntu 20.04上设置Apache虚拟主机

让我们在Ubuntu 20.04上加密来保护Apache