在这个树莓派 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 和虚拟主机有一个不错的想法。
如果您有任何反馈,问题,提示或其他任何内容,请与我联系。