如何在 Ubuntu 16.04 上安装 Apache 网络服务器

介绍

Apache HTTP 服务器是世界上使用最广泛的 Web 服务器,它提供了许多强大的功能,包括动态可加载的模块,强大的媒体支持,以及与其他流行的软件的广泛集成。

在本指南中,我们将讨论如何在 Ubuntu 16.04 服务器上安装 Apache 网页服务器。

前提条件

在开始本指南之前,您应该有一个正常的非根用户,在您的服务器上配置了sudo权限。此外,您还需要配置一个基本的防火墙来阻止非必不可少的端口。

当你有一个帐户可用时,登录作为你的非根用户开始。

步骤1:安装Apache

Apache在Ubuntu的默认软件存储库中可用,所以我们会使用传统的包管理工具来安装它。

我们将首先更新本地包索引,以反映最新的上游变化,随后,我们可以安装apache2包:

1sudo apt-get update
2sudo apt-get install apache2

确认安装后,apt-get 将安装 Apache 和所有所需的依赖。

步骤2:调整防火墙

在我们可以测试Apache之前,我们需要修改我们的防火墙,以允许外部访问默认的Web端口.假设您遵循前提中的指示,您应该有一个UFW防火墙配置来限制访问您的服务器。

在安装过程中,Apache 会与 UFW 注册,以提供几个应用程序配置文件,我们可以使用这些配置文件来简化通过我们的防火墙启用或禁用对 Apache 的访问过程。

我们可以通过键入列出ufw应用程序配置文件:

1sudo ufw app list

您应该获得应用程序配置文件的列表:

1[secondary_label Output]
2Available applications:
3  Apache
4  Apache Full
5  Apache Secure
6  OpenSSH

正如你所看到的,对于Apache有三个配置文件:

  • Apache :此配置文件只打开端口80(正常,未加密的网络流量)
  • Apache Full :此配置文件只打开端口80(正常,未加密的网络流量)和端口443(TLS/SSL加密的流量)
  • Apache Secure :此配置文件只打开端口443(TLS/SSL加密的流量)

为了我们的目的,我们将通过键入以下方式允许对 Apache Full 的个人资料的流量输入:

1sudo ufw allow 'Apache Full'

您可以通过键入检查更改:

1sudo ufw status

您应该在显示的输出中看到允许的 HTTP 流量:

1[secondary_label Output]
2Status: active
3
4To Action From
5--                         ------      ----
6OpenSSH ALLOW Anywhere                  
7Apache Full ALLOW Anywhere                  
8OpenSSH (v6)               ALLOW Anywhere (v6)             
9Apache Full (v6)           ALLOW Anywhere (v6)

正如您所看到的,该配置文件已被激活,以允许访问Web服务器。

步骤三:检查您的Web服务器

在安装过程结束时,Ubuntu 16.04 启动了 Apache. Web 服务器应该已经启动并运行。

我们可以通过systemd init 系统检查,以确保该服务通过键入运行:

1sudo systemctl status apache2
 1[secondary_label Output]
 2 apache2.service - LSB: Apache2 web server
 3   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
 4  Drop-In: /lib/systemd/system/apache2.service.d
 5           └─apache2-systemd.conf
 6   Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
 7     Docs: man:systemd-sysv-generator(8)
 8  Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 9  Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
10    Tasks: 55
11   Memory: 2.3M
12      CPU: 4.094s
13   CGroup: /system.slice/apache2.service
14           ├─4374 /usr/sbin/apache2 -k start
15           ├─4377 /usr/sbin/apache2 -k start
16           └─4378 /usr/sbin/apache2 -k start
17
18May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
19May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
20May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]:  * Starting Apache httpd web server apache2
21May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
22May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]:  *
23May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

正如您上面所看到的,该服务似乎已经成功启动,但是,测试这一点的最佳方法是实际上请求来自Apache的页面。

您可以访问默认的 Apache 定位页面,以确认软件是否正常运行,您可以通过服务器的域名或 IP 地址访问此页面。

如果您正在使用DigitalOcean,并且没有为您的服务器设置域名,您可以按照我们的指南(如何使用DigitalOcean设置域名)(https://digitalocean.com/community/articles/how-to-set-up-a-host-name-with-digitalocean)设置一个域名。

如果你不想为你的服务器设置域名,你可以使用你的服务器的公共IP地址. 如果你不知道你的服务器的IP地址,你可以从命令行得到几种不同的方式。

尝试在您的服务器的命令提示书中输入以下内容:

1hostname -I

您将获得几个地址,以空间分开,您可以尝试在您的网页浏览器中查看它们是否起作用。

另一种选择是输入这个,该地址应该为您提供您从互联网上的另一个位置看到的公共IP地址:

1sudo apt-get install curl
2curl -4 icanhazip.com

当您有您的服务器的 IP 地址或域名时,请将其输入到浏览器的地址栏:

1http://server_domain_or_IP

您应该看到默认的Ubuntu 16.04 Apache网页,该网页应该像这样:

Apache default page

此页面仅仅是为了显示 Apache 是否正常工作,还包含有关重要 Apache 文件和目录位置的一些基本信息。

步骤 4:管理 Apache 流程

现在你有你的Web服务器并运行,我们可以通过一些基本的管理命令。

要停止您的 Web 服务器,您可以键入:

1sudo systemctl stop apache2

要在停止时启动 Web 服务器,键入:

1sudo systemctl start apache2

要停止,然后重新启动服务,键入:

1sudo systemctl restart apache2

如果您只是在进行配置更改,Apache 通常可以重新加载而不会放弃连接。

1sudo systemctl reload apache2

默认情况下,Apache配置为在服务器启动时自动启动。

1sudo systemctl disable apache2

要重新启用服务在启动时启动,您可以键入:

1sudo systemctl enable apache2

Apache 现在应该在服务器重新启动时自动启动。

步骤 5:熟悉重要的 Apache 文件和目录

现在你知道如何管理服务本身,你应该花几分钟来熟悉一些重要的目录和文件。

内容

  • /var/www/html:实际的网页内容,默认情况下仅由您之前看到的默认Apache页面组成,是从 /var/www/html目录中提供的。

服务器配置

  • `/etc/apache2': Apache 配置目录 。 所有Apache配置文件都住在这里.
  • `/etc/apaches2/apache2.conf' : Apache 主配置文件 。 这可以被修改为修改Apache全局配置. 此文件负责在配置目录中加载许多其他文件.
  • `/etc/apache2/ports.conf': 此文件指定了 Apache 会收听的端口 。 默认情况下,Apache在端口80上监听,在启用一个提供SSL能力的模块时,额外监听端口443.
  • /etc/apaches2/可用网站/' : 每站可存储"虚拟主机"的目录. Apache 将不会使用此目录中找到的配置文件, 除非它们与 站点启用 目录相链接( 见下文) 。 通常情况下,所有服务器块配置都是在这个目录中完成的,然后通过将a2ensite`命令连接到另一个目录而启用。
  • /etc/apaches2/sites -- -- 启用/': 每个站点虚拟主机`被存储的目录 。 通常,通过将 " 站点可用 " 目录中的配置文件与 " a2ensite " 相连接来创建这些系统。 Apache 读取此目录中找到的配置文件和链接, 当它开始或重新加载以编译一个完整的配置时.
  • /etc/apache2/conf- 可用/',/etc/apache2/conf- 启用/': 这些目录与可用网站 ' 和可用网站 ' 目录有着相同的关系,但用于储存不属于虚拟主机的配置碎片。 在conf-captable目录中的文件可以用a2enconf命令启用,而用a2disconf命令禁用。
  • /etc/apaches2/mods-可用/',/etc/apaches2/mods-启用/': 这些目录分别载有可用的和启用的模块。 以 ".load " 为结尾的文件包含装入特定模块的碎片,而以 ".conf " 为结尾的文件包含这些模块的配置。 模块可以使用 " a2enmod " 和 " a2Dismod " 命令启用并被禁用。 (英语)

服务器日志

  • /var/log/apache2/access.log:默认情况下,您的 Web 服务器的每一个请求都记录在这个日志文件中,除非 Apache 配置为另行。

结论

现在你已经安装了你的Web服务器,你有许多选择的内容类型来服务和你想要使用的技术来创建一个更丰富的体验。

如果您想构建一个更完整的应用程序堆栈,请参阅本文中的 如何在Ubuntu 16.04上配置LAMP堆栈

Published At
Categories with 技术
comments powered by Disqus