如何在树莓派上配置 Apache Http Web 服务?

在这个树莓派 Apache 项目中,我们将向您展示如何在树莓派上安装和设置 Apache Web 服务器。

Apache 本身可以通过 HTTP 和 HTTPS Web 协议提供 HTML 文件。除了其他模块 (例如 PHP) 之外,Apache 还能够提供动态内容。

Apache 是​​树莓派上最受欢迎的 Web 服务器之一。仅 Apache 就占了全球所有 Web 服务器的 44 %

Apache 的替代方法是 Nginx Web 服务器,在某些任务上,它被认为比 Apache 快得多。您要完全决定要使用哪种技术。

在树莓派 Apache 教程中,我们将引导您完成设置 Apache ,安装 PHP 以及创建第一个基本 Apache VirtualHost 文件的步骤。

在本教程中,我们介绍了 Apache 的所有基础知识,但是,没有涉及设置 MYSQL 和 PHPMyAdmin](https://pimylifeup .com/raspberry-pi-phpmyadmin/)。我们也不会介绍在树莓派上设置 [WordPress。这些都是单独教程中涵盖的所有主题。

设备清单

以下是本树莓派 Apache Web Server 教程中使用的所有细节。

推荐的

  • 树莓派 2、 3 或 4

  • Micro SD 卡

  • 电源

  • Ethernet Cord 或 * WiFi dongle (Pi 3 和 4 具有内置 WiFi)

可选的

  • 树莓派外壳

如何在树莓派上安装 Apache Web 服务器

1 在将 Apache 安装到树莓派之前,必须首先通过运行以下两个命令来确保软件包列表是最新的。

sudo apt-get update
sudo apt-get upgrade

2 首先,我们需要在树莓派上安装 Apache2 软件包。

对于不知道 Apache 是​​什么的人来说,它是一种服务器软件,可将 HTML 文件从计算机发送到网络浏览器。

要在树莓派上安装 apache2 ,请在终端中输入以下命令。

sudo apt install apache2 -y

3 在树莓派上安装了 Apache2 之后,我们现在已经建立并运行了一个非常基础的 Web 服务器。服务器将能够提供非动态内容,例如 HTML 文件。

在下一节中,我们将通过将 PHP 安装到树莓派来扩展此基本的 Apache Web 服务器。

要检查 Apache 是​​否已在树莓派上启动并运行,可以在 Web 浏览器中输入树莓派的 IP 地址。服务器应返回一个带有一些简单文本的网页。

如果您不知道 IP ,则可以在终端中输入主机名命令以进行检索。

主机名-I

4 在网络浏览器中,输入您的树莓派的 IP 地址,它应会连接并加载如下页面。

5 为了能够在不使用 root 的情况下对 /var/www/html 中的文件进行更改,我们需要设置某些权限。

首先,我们将用户”pi”(我们的用户) 添加到”www-data” 组,这是 Apache2 的默认组。

其次,我们将”/var/www/html” 目录中所有文件和文件夹的所有权授予”www-data” 组。

sudo usermod -a -G www-data pi
sudo chown -R -f www-data:www-data/var/www/html

运行该命令后,您需要注销然后重新登录,以使更改生效。

6 您现在可以通过运行以下命令来更改默认网页。

此命令将使用 nano 文本编辑器修改 index.html 文件。

网络服务器将提供 /var/ww/html/ 目录中的所有文件。

vim /var/www/html/index.html

Apache 是​​基本的 Web 服务器,如果您想学习 HTML ,JS 或 CSS ,它是很棒的。

但是,如果您使用 PHP (用于动态网页),请继续阅读树莓派 Apache 教程的下一部分。

为 Apache 设置 PHP7

1 请注意,在开始本节之前,您应该至少运行 Raspbian Buster。您可以在” 升级 Raspbian “指南中了解如何升级到 Raspbian Buster。要开始本节,我们将需要继续并将 php7 .3 和其他几个软件包安装到我们的树莓派中。我们正在安装的其他软件包是 PHP 应用程序常用的软件包。
对我们来说幸运的是,安装所需的所有软件包是一个简单的过程,因为 Raspbian 软件包存储库中提供了 PHP 7.3

运行以下命令以将所有 PHP 软件包安装到树莓派。

sudo apt install php7 .3 php7.3-mbstring php7.3-mysql php7.3-curl php7.3-gd php7.3-zip -y

2 现在 PHP 已安装到我们的树莓派中,我们可以对其进行测试以确保其正常工作。

我们不必担心修改任何配置文件,因为当检测到 Apache 时,配置文件会自动完成。

我们可以通过在 /var/www/html/ 目录中创建一个 PHP 文件来测试 PHP 是否正常工作。在此目录中创建文件将允许您在 Web 浏览器中打开文件时对其进行处理和显示。

对于我们的示例,我们将创建一个名为 example.php 的 PHP 文件。我们可以通过发出以下命令来创建此文件。

sudo vim /var/www/html/example.php

3 在此文件中,我们需要在 PHP 代码上添加以下几行。

<?php
echo "今天的日期是".date('Y-m-d H:i:s');

上面的代码只是一个非常简单的 PHP 脚本,可以打印出使用 PHP 的 date () 函数检索到的今天的日期。足以告诉我们 PHP 实际上已经启动并正在运行。

4 现在,按 Ctrl + X,然后按 Y ,然后按 ENTER ,保存文件。

5 在您的网络浏览器中,转到”http://192.168.1.103/example.php"。确保用树莓派的 IP 地址替换”192.168.1.103”。

转到以下 URL 应该显示类似以下内容。

今天的日期是 2019 -06-28 21:30:45

设置 Apache 虚拟主机

虚拟主机是 Apache 工作方式的重要组成部分。 Apache 使用这些 Virtualhost 文件,以便它知道如何处理单个站点。

在本节中,我们将向您展示如何在树莓派 Apache Web 服务器上创建基本的虚拟主机文件。虚拟主机是 Apache 处理多个网站的一种方式,每个虚拟主机文件都会设置并配置一个特定的域。

1 首先运行以下命令在 /etc/apache2/sites-available 目录下创建一个名为 example .com.conf 的基本虚拟主机文件。

如果您打算将其用作实际域名,请确保将”example.com” 替换为该域名。

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

2 在此文件中,输入以下文本。我们将逐步解释虚拟主机文件的每个部分,以便您对如何设置非常基本的虚拟主机有一个了解。

<VirtualHost *:80>

此行指定虚拟主机的开始,并且该虚拟主机应在端口 80 上侦听。

对于那些不知道 ** port 80 http 的默认端口的用户。同样,用于 https 的端口为 443 **。

ServerName example.com
ServerAlias www.example.com

在这里,我们向虚拟主机添加了两个指令。这些指令中的第一个称为”ServerName”,它指定基本域。该服务器名称用于将 VirtualHost 与域名匹配。

第二个指令 ServerAlias 定义了将被匹配的其他域名,就好像它们是基本域名一样。

该指令对于匹配其他名称 (例如”www。” 子域) 很有用。

DocumentRoot /var/www/example.com/public_html

DocumentRoot 指令定义目录,Apache 将在其中存放所有文件。

错误日志$ {APACHE_LOG_DIR} /example.com_error.log
CustomLog $ {APACHE_LOG_DIR} /example.com_access.log组合

在这最后两个伪指令”ErrorLog” 和”CustomLog” 中,我们指定了我们希望保留日志文件的位置。

</VirtualHost>

最后,我们关闭 VirtualHost 部分。

3 完成所有操作后,代码应最终看起来像下面的样子。当然,使用您的域名而不是 example.com

<VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      DocumentRoot /var/www/example.com/public_html
      错误日志$ {APACHE_LOG_DIR} /example.com_error.log
      CustomLog $ {APACHE_LOG_DIR} /example.com_access.log组合
</VirtualHost>

完成后,按 CTRL + X,然后按 Y ,然后按 ENTER ,保存文件。

4 现在,我们创建一个文件夹,用于存储 HTML 文件。我们也将对该文件夹的所有权归 www .data 组。

运行以下命令来创建我们需要的文件夹并对其进行所有权。

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

5 现在我们已经创建了 VirtualHost 和它的文件夹,让我们继续,现在通过运行以下命令激活它。这个命令在 /etc/apache2/sites-available/ 和 /etc/apache2/sites-enabled/ 目录之间为我们的配置文件创建符号链接。
sudo a2ensite example.com.conf

6 最后,要加载新的虚拟主机文件,我们需要告诉 Apache2 服务重新加载其配置。

只需运行以下命令即可完成此操作。

sudo systemctl重新加载 apache2 

现在,您可以将域名服务器 (DNS) 指向树莓派的公共 IP ,并为其提供所请求域名的文件。您需要设置端口转发才能正常工作。

现在,您应该已经在树莓派上运行了 Apache Web 服务器。您还应该对如何在 Apache 上设置 PHP 和虚拟主机有一个不错的想法。

如果您有任何反馈,问题,提示或其他任何内容,请与我联系。

分享到