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

本教程介绍了如何在Ubuntu 20.04上安装和管理Apache Web服务器。包括安装Apache,配置UFW防火墙以打开HTTP和HTTPs端口,验证Apache安装,设置虚拟主机。

时至今天,主流的HTTP服务器已不是Apache,我们推荐使用Nginx作为HTTP服务器,Nginx相对于Apache来说简单且性能更好。

先决条件

开始学习本教程之前,请确保您以具有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文件,在本教程中,我们将使用vim编辑器创建文件

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

复制以下内容到vim编辑器

<!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>
/var/www/example.com/index.html

完成后保存并关闭文件。为避免权限问题,将域文档根目录的所有权更改为apache用户www-data

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

下一步是为example.com域创建虚拟主机配置。 最佳做法是将每个虚拟主机配置存储在单独的文件中。Apache vhosts文件存储在/etc/apache2/sites-available目录中。 标准命名约定是根据域命名文件。打开你喜欢的文本编辑器并创建以下文件:

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

复制以下内容到vim编辑器

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    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>
/etc/apache2/sites-available/example.com.conf

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或代理服务器。如果你觉得Apache配置过于复杂,我们建议安装Nginx在你的ubuntu服务器上。如果您有任何问题或反馈,请随时发表评论。

如何在Ubuntu 20.04上安装MySQL | myfreax
MySQL是最流行的开源关系数据库管理系统。 它快速,易于使用,可扩展,并且是流行的LAMP和LEMP栈的组成部分
如何在Ubuntu 20.04上安装Nginx
本教程介绍了如何在Ubuntu 20.04上安装和管理Nginx。Nginx发音为“ engine x”,是一种开源的高性能HTTP和反向代理服务器
如何在Ubuntu 20.04上安装PHP | myfreax
PHP是最常用的服务器端编程语言之一。本指南介绍了在Ubuntu 20.04上安装PHP并将其与Nginx和Apache集成的必要步骤