2022.1.22.
小白刚刚开始学习树莓派!记录一下自己遇到的问题和解决方法。
我使用的是树莓派最新版本4b。所以以下内容均是在该版本树莓派上的操作。
参考链接:
1. 树莓派4B安装PHP7.3 + Nginx + MySQL 教程 | 毛英东的个人博客
一.更新源
为什么要更新源?
简单讲,就是为了“更快”! 知乎上有一个回答,可以参考一下:"Linux系统为什么要换源? - 知乎"
所以,拿到树莓派,安装好系统之后,首先更新了系统的源。
以下给出更新源的方法:
sudo nano /etc/apt/sources.list
#将原有内容用#注释掉
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
sudo nano /etc/apt/sources.list.d/raspi.list
#将原有内容用#注释掉
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main ui
sudo apt-get update
sudo apt-get upgrade
二 . LNMP网络服务器配置
在树莓派4b上搭建Web服务器环境:PHP7.3 + Nginx (配置Nginx解析php)+ Mariadb。
2.1 安装PHP7.3
安装命令:
sudo apt install -y -t buster php7.3-fpm php7.3-curl php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-imap php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-xmlrpc php7.3-zip
安装完成后,通过命令 php -v
能够看到PHP版本号7.3,说明安装完成:
pi@raspberrypi:/ $ php -v
PHP 7.3.31-1~deb10u1 (cli) (built: Oct 24 2021 15:18:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.31-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
查看php.ini配置文件位置:
pi@raspberrypi:/ $ php -i|grep "Loaded Configuration File"
Loaded Configuration File => /etc/php/7.3/cli/php.ini
2.2 安装Nginx
安装命令:
sudo apt-get install nginx
安装完成后,会自动开启nginx。
此时,在浏览器中输入树莓派的IP地址,可以看到“Welcome to nginx!”。
2.2.1 配置Nginx解析php
编辑配置Nginx文件:
sudo vi /etc/nginx/sites-enabled/default
找到index
指令,添加index.php
。修改后为:
index index.php index.html index.htm index.nginx-debian.html;
还是在这个文件中,继续往下找到 # pass PHP scripts to FastCGI server
后面的 location。中括号内的内容修改后如下:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
保存后重启Nginx:
sudo systemctl restart nginx
然后在网站根目录创建一个php文件:
sudo vi /var/www/html/index.php
写入以下php代码并保存:
<?php
phpinfo();
最后在浏览器中 输入当前树莓派的IP地址 即可看到 phpinfo。
2.3 安装Mairadb数据库
如果没有按照上边所描述更新源,则树莓派4b在安装Mairadb数据库时,会报错缺少依赖。
所以,建议还是先更新源,会在后边的调试安装过程中省事。
安装 mariadb:
sudo apt-get install mariadb-server mariadb-client
执行数据库初始化安装:
sudo mysql_secure_installation
此时会弹出好几个提示,需要根据提示设置数据库root用户密码、是否允许外网访问等等。
结束后,尝试登录数据库:
mysql -u root -p
输入上一步设置的密码,如果登陆成功,恭喜!
但是!
如果发现无法登录,并且报错提示如下:
pi@raspberrypi:~ $ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
那请继续往下。
原因: 数据库默认使用系统用户登录,需要修改为使用密码登录。
解决方案:
sudo mysql -u root
登入数据库后,分别依次执行以下SQL:
1. use mysql +回车 #切换到mysql数据库
2. update user set plugin='mysql_native_password'; +回车 #修改plugin字段
3. flush privileges; +回车 #刷新权限
4. exit; +回车 #退出数据库
再次使用:
mysql -u root -p
即可通过密码登录数据库,无需root权限执行。
另外,如果上边这个方法解决不了,并且报错如下:
该错误一般是密码输入错误引起,解决的办法是重置密码,重置密码的第一步就是跳过MySQL的密码认证过程。
修改过程:
首先打开自己的 my.cnf 文件,一般在 /etc/mysql/..文件夹下(具体找找),找到后,在终端输入:
sudo vi /etc/my.cnf
打开后在文件中找到 [mysqld], 在它的后面任意下一行添加如下代码:
skip-grant-tables
然后保存并退出。输入
:wq +回车
然后重启mysql,命令如下:
/etc/init.d/mysqld restart
这里如果提示如下:
则输入:
sudo mysql
打开mysql,然后用sql来修改root的密码 。
在mysql数据库有一个user表,存储的是数据库用户的信息,需要修改的里面用户的密码;
输入:
show databases;
会显示:
然后依次输入一下命令:
1.use mysql; +回车(使用mysql数据库)
显示:
2.update user set password=password("在这个引号内输入你的密码") where user="root";
显示:
3.flush privileges;
显示:
4.quit
显示:
此时root账户就已经重置成新的密码了。
然后还需要再编辑 my.cnf文件,去掉刚才添加的那一行内容,然后重启MySQL。
具体如下图:
本文完。