树莓派PHP Web服务器,详细介绍安装和配置Apache网络服务器

在这个Raspberry Pi Apache项目中,我们将向您展示如何在Raspberry Pi上安装和设置Apache网络服务器。

Raspberry-Pi-Apache.jpg

Apache本身可以通过HTTP和HTTPS网络协议来提供HTML文件。除了额外的模块,如PHP,Apache还能提供动态内容。Apache是树莓Pi上最流行的网络服务器之一。仅Apache就占了世界上所有网络服务器的44%。Apache的替代方案是Nginx Web服务器,它被认为在某些任务上比Apache快得多。这完全取决于你想继续使用哪种技术。在本篇树莓派Apache教程中,我们将通过设置Apache、安装PHP以及创建第一个基本的Apache VirtualHost文件等步骤来引导您。

在本教程中,我们涉及到Apache的所有基础知识,但是,并没有涉及到MYSQL和PHPMyAdmin的设置。我们也没有涉及在树莓派上设置WordPress。这些主题都会在单独的教程中介绍。

设备清单

以下是我在这个Raspberry Pi Apache Web服务器教程中使用的所有设备清单,点击链接可直达特别优惠购买。

建议

可选

如何在Raspberry Pi上安装Apache网络服务器

1. 在将Apache安装到Raspberry Pi之前,我们必须首先行以下两个命令确保软件包列表是最新的。

sudo apt-get update
sudo apt-get upgrade

2. 首先,需要在Raspberry Pi上安装Apache2包。

Apache是一个服务器软件,它可以将电脑中的HTML文件提供给网络浏览器。要在Raspberry Pi上安装apache2,在终端中输入以下命令。

sudo apt install apache2 -y

3. 在Raspberry Pi上安装了Apache2,我们现在已经有了一个非常基本的网络服务器。该服务器将能够提供非动态内容,如HTML文件。

在下一节,我们将通过在树莓派上安装PHP来扩展这个基本的Apache网络服务器。要检查Apache是否在你的Raspberry Pi上运行,你可以在网络浏览器中输入Raspberry Pi的IP地址。服务器应该会返回一个带有一些简单文字的网页。

如果不知道IP,可以在终端输入hostname命令来检索。

hostname -I

4. 在网络浏览器中,输入你的Raspberry Pi的IP地址,它应该会连接并加载一个类似下面的页面。

Raspberry-Pi-Apache-Web-Server-Default-Page-v2.png

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文件。

Web服务器将为/var/ww/html/目录内的所有文件提供服务。

nano /var/www/html/index.html

Apache是一个基本的Web服务器,如果你想学习HTML、JS或CSS,它是非常好的。

然而,如果你是PHP(用于动态网页),然后继续我们的树莓派Apache教程的下一部分。

为Apache设置PHP7

1. 请注意,在开始本节之前,你应该至少运行Raspbian Buster。您可以在我们的 “升级Raspbian “指南中了解如何升级到Raspbian Buster。

在本节开始之前,我们需要先安装php7.3和其他几个包到树莓派上。我们要安装的是PHP应用中常用的包。

幸运的是,我们安装所有我们需要的包是一个简单的过程,因为PHP 7.3在Raspbian包仓库中是可用的。

运行下面的命令来安装所有的PHP包到你的Raspberry Pi。

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

2. 现在PHP已经安装到我们的Raspberry Pi上了,我们可以测试它以确保它的工作。

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

我们可以通过在/var/www/html/目录下创建一个PHP文件来测试PHP是否工作。在这个目录下创建一个文件将允许它被处理,并在Web浏览器中打开时显示。

在我们的例子中,我们将创建一个名为example.php的PHP文件。我们可以通过下面的命令来创建这个文件。

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

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

<?php
echo "Today's date is ".date('Y-m-d H:i:s');

上面的代码只是一个非常简单的 PHP 脚本,它可以打印出使用 PHP 的 date() 函数检索到的今天的日期。这将足以告诉我们,事实上,PHP是可以运行的。

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

5. 在您的网络浏览器中,访问http://192.168.1.103/example.php。确保您将192.168.1.103替换为您Raspberry Pi的IP地址。

进入下面的URL,应该显示如下内容。

Today's date is 2019-06-28 21:30:45

设置一个Apache虚拟主机

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

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

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

如果你打算用它来做一个实际的域名,请确保你把example.com和域名换掉。

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

2. 在这个文件中,输入以下文字。我们将边走边解释虚拟主机文件的每个部分,这样你就可以知道如何设置一个非常基本的虚拟主机。

<VirtualHost *:80>

这一行指定了虚拟主机的开始,这个虚拟主机应该在80端口监听。

对于那些不知道80端口是http的默认端口。同样,https的端口也是443。

ServerName example.com
ServerAlias www.example.com

在这里,我们为我们的虚拟主机添加两个指令。其中第一个指令叫做ServerName,指定基础域。这个服务器名用于将VirtualHost与域名相匹配。

第二条指令,ServerAlias,定义了额外的域名,这些域名将像基本域名一样被匹配。

这条指令对于匹配额外的名称(如www.子域)很有用。

DocumentRoot /var/www/example.com/public_html

DocumentRoot指令定义了Apache将从哪里提供所有文件的目录。

ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

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

</VirtualHost>

最后,我们结束VirtualHost部分。

3. 一切完成后,代码最终应该是我们下面的样子。当然,使用你的域名而不是example.com。

<VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      DocumentRoot /var/www/example.com/public_html
      ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
      CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</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 reload apache2

现在可以将域名服务器(DNS)指向Raspberry Pi的公网IP,并让它为请求的域名提供文件。需要设置端口转发才能正常工作。

现在你应该已经在Raspberry Pi上运行了Apache网络服务器。你也应该对如何在Apache上设置PHP和虚拟主机有一个不错的想法。

如果你有任何反馈,问题,技巧或其他任何东西,那么请不要犹豫,在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派PHP Web服务器,详细介绍安装和配置Apache网络服务器

赞 (0)

评论

2+3=