• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

记一次在树莓派 4B 上安装 LAMP 环境Linux + Apache + MySql + PHP

武飞扬头像
xzqsr2011
帮助1

关于树莓派

  1. 型号 4B,内存 4GB;
  2. 安装了官网的带图形界面的 Debian 系统,并已进行了中文本地化设置(如更换软件源、设置字符集等)。

L:Linux 环境

不用说了,这里指的就是树莓派的系统环境。进行后续安装前,先更新到最新仓库:

sudo apt-get update

A:安装 Apache2(Web 服务器)

安装与启动

安装 Apache2(这样安装的版本应该是 2.4):

sudo apt-get install apache2

启动 Apache2:

sudo service apache2 start

控制

安装后 Apache2 将自动开机启动,一般保留其自启即可,当然也可以酌情开启或关闭:

sudo systemctl enable apache2.service
sudo systemctl disable apache2.service

也可以酌情使用下列命令控制 Apache2 停止或重启:

sudo service apache2 stop
sudo service apache2 restart

验证安装

用浏览器(树莓派图形界面带的浏览器,或局域网内其他设备的浏览器均可)访问树莓派所在的本地 IP 地址(如:http://192.168.3.18),如果跳出 Apache 成功页面(如下图),表示安装成功。
学新通

默认路径和端口

上面的成功页面位于 /var/www/html/index.html。而其所在文件夹 (/var/www/html)是 Apache 的默认路径,该路径也将被映射为 Web 根目录。默认端口为 80

使用默认目录和端口并不方便,可能导致和将来的其他软件产生冲突。可以考虑将其修改,但修改不是必需进行的。

修改默认路径(可选)

现在准备将其修改为你自定义的路径,例如 /var/www/wp-apache2。下面仅介绍如何使用树莓派图形界面进行操作,如果没有图形界面,理解该流程的思路,执行对应命令,也是一样的。

首先,在终端执行下列命令,以打开 superuser 权限下的文件管理器:

sudo pcmanfm

该文件管理器左上角会有个感叹号,以区别于直接从桌面上打开的文件管理器;并且从这个窗口中打开的编辑器,都是带有最高权限的,否则可能没有足够权限来编辑或保存后续的文件。

打开 /etc/apache2/sites-enabled/000-default.conf (注:1. 建议右键-Geany 打开,支持语法高亮、行号等,左键双击的默认记事本不太好用;2. 它实际上是一个指向 /etc/apache2/sites-available/000-default.conf 的一个快捷方式),修改其中的 DocumentRoot 为你的路径,即:/var/www/wp-apache2(原值为:/var/www/html)。保存。
学新通
打开 /etc/apache2/apache2.conf,看 170 行(原值是 /var/www),如果你的路径仍然位于原值的子路径中,则不用改(本文示例路径则符合这个情况);否则,参照 176-180 行,在后文仿写你的路径。保存。
学新通
最后,手动将原路径中的文件移动到新路径,然后重启 Apache:

sudo service apache2 restart

重启后,用浏览器访问树莓派,可能遇到:

403 Forbiden

或者

You don’t have permission to access / on this server

则修改你的路径的权限为可读写:

chmod -R 755 你的路径

此部分参考:https://www.cnblogs.com/calamus/p/10375792.html

修改默认端口(可选)

打开 /etc/apache2/ports.conf,将 80 改为自定义端口,如 8081
学新通
根据上个文件中的注释,打开 /etc/apache2/sites-enabled/000-default.conf,修改端口为自定义端口(8081)。网上其他帖子大多没有说这步,这应该是不对的,因为如果不改,测试发现旧端口还能进去(但没有排除浏览器缓存的原因)。
学新通
最后,重启 Apache:

sudo service apache2 restart

则以后访问时,应该加上端口号(如 http://192.168.3.18:8081/,只有 80 端口不需要加端口号) 。如果以老端口访问还能进得去,则是浏览器缓存所致,更换浏览器、使用无痕模式,或清空缓存再试即可。

常见错误

如果启动时报如下错误(错误详见 https://blog.csdn.net/qq_40218227/article/details/105501622):

Job for apache2.service failed because the control process exited with error code.

可能是 80 段口被占用所致,参考:https://blog.csdn.net/u014261408/article/details/89786967

不过我当时是直接重启树莓派就解决了,没用到 kill 进程。

M:安装 MySql 或 MariaDB 数据库

安装

先介绍下,关于 MariaDB,它是 MySQL 被甲骨文收购之后,其缔造者重新创建的一个分支。目前其使用方法、命令与 MySQL 相同,在目前流行的 Linux 发行版中,多数包管理工具默认安装 MariaDB。这里安装 MariaDB 数据库:

sudo apt install mariadb-server

配置

配置数据库:

sudo mysql_secure_installation

此时系统会询问:

Enter current password for root (enter for none):

按 Enter 键,因为第一次登陆没有密码。

然后会询问:

Set root password?

按 Y,进行数据库的 root 帐号(与树莓派的 root 无关)的密码设置。此时,会提示:

New password:

在此输入你的密码,按回车,会提示:

Re-enter new password:

重复输入密码,回车即可。注:需要牢记这个密码。

后续会依次进行下列询问:

Remove anonymous users?

按 Y ,删除供测试用的匿名用户(该用户不需登陆就可访问数据库)。

Disallow root login remotely?

按 Y ,这样,数据库就只允许在 localhost 上的 root 身份(即树莓派的 root 账户)登录,禁止远程访问。

Remove test database and access to it?

按 Y ,删除测试数据库,该数据库任何人都可访问。

Reload privilege tables now?

按 Y ,保存并使上述所有操作立即生效。然后提示:

All done!
Thanks for using MariaDB!

表示已经设置完成了。注:1. 不需要重新启动 MariaDB 数据库;2. 树莓派已默认开机自动启动 MariaDB。

验证安装和配置

用树莓派的 root 账户登录 MariaDB(登录的应该是数据库 root 账号):

sudo mysql -u root -p

然后输入上面设置的 root 密码(注:1. 这里不知道为什么,好像输入错误的密码也能进去,可能是已经使用了树莓派 root 身份的原因;2. 必须加 sudo,因为在安全设置中禁止了数据库 root 用户远程登录,只能以树莓派 root 用户身份在终端里直接登录)。

查看现有的数据库(注:此条为 SQL 语句,结尾有分号):

show databases;

能看到如下的数据表。输入命令期间,如果输错了,输入 \c 清空缓冲区;如果要退出数据库,输入 quitexit;要帮助,输入 \h
学新通

创建普通用户并授权(必须)

因为不能图省事总是以 root 登录,在实际的生产环境中不安全。很多帖子并没有提到这一点,都直接使用 root 登陆。

依次执行下面的命令,可以创建一个新的用户,并进行对数据库操作的授权(注:均为 SQL 语句,结尾有分号)。

// 选择 mysql 数据表(见上图,存在一个叫 mysql 的数据表)
use mysql;

// 新建普通用户 wp-pi,它只能在 localhost 登录,并设置密码为 xxx
create user 'wp-pi'@'localhost' identified by 'xxx';

// 更新权限(使上述操作生效)
flush privileges;

// 新建一个数据表 wp
create database wp;

// 为用户 wp-pi 授予操作 wp 数据库的全部权限
grant all privileges on wp.* to 'wp-pi'@'localhost' identified by 'xxx';

// 更新权限(使上述操作生效)
flush privileges;

// 退出 MariaDB
exit;
学新通

这段代码中,wp-pilocalhostxxxwp 是需要记住的,将来会把它们暴露给使用数据库的 PHP 程序(而不是图省事直接将 root 账户交由其他程序使用)。这里的一些名字仅为示例,你可以自定义它们。

验证新账户

再以刚才新建的 wp-pi 用户登录(注:这里不需要 sudo,因为不再需要 root 身份):

mysql -u wp-pi -p

输入密码(这次必须输入上面设置的密码 xxx 才能登陆,而不是数据库 root 账户的密码)。登录后,查看数据库(注意分号):

show databases;

如果只能查看到两个数据库(information_schemawordpress),则说明新账户及其权限已经设置成功,执行 exit 退出。

P:安装 PHP 编程环境

安装

主要包括:安装 php 和依赖项:php-mysql、php-gd(注:1. 上面未指定 php 版本,则默认安装的应该是 7.3;2. 好像 php-gd 不装也可以,没测试):

sudo apt-get install php php-mysql php-gd

装完以后收到下列提示,不用理会:

NOTICE: Not enabling PHP 7.3 FPM by default.
NOTICE: To enable PHP 7.3 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.3-fpm
NOTICE: You are seeing this message because you have apache2 package installed.

验证安装

下面仅介绍如何使用树莓派图形界面进行操作,如果没有图形界面,理解该流程的思路,执行对应命令,也是一样的。

首先,在终端执行下列命令,以打开 superuser 权限下的文件管理器:

sudo pcmanfm

该文件管理器左上角会有个感叹号,以区别于直接从桌面上打开的文件管理器;并且从这个窗口中打开的编辑器,都是带有最高权限的,否则可能没有足够权限来编辑或保存后续的文件。

进入 Apache 服务器路径(见前文),新建一个用于测试的空文件,命名为 test.php。用文本编辑器打开后输入下列内容:

<?php phpinfo(); ?>

保存。然后用浏览器访问该文件(http://[IP]:[Port]/test.php,如 http://192.168.3.18:8081/test.php),如果能看到 PHP 版本页则表示安装成功(如下图):
学新通

常见问题

访问测试页面后,如果看到的是空白页面,或是PHP源代码,则说明安装不成功。

先尝试重启 Apache2 或树莓派,还不好使的话说明此时可能是少安装了一个模块,将其补上(注:这句命令尾部 php 后面不指定版本号,表示自动选择,为 7.3):

sudo apt-get install libapache2-mod-php

完毕后,见到一句:

apache2_invoke: Enable module php7.3

此时刷新页面即可。当时为了解决此问题走了不少弯路,国内论坛没有正确的解法,最终参考:https://askubuntu.com/questions/984975/apache2-php-showing-blank-page

以上

到此为止,树莓派上的 LAMP 环境安装完成,建议重启下树莓派。

参考资料:https://zhuanlan.zhihu.com/p/60692645

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghacke
系列文章
更多 icon
同类精品
更多 icon
继续加载