OneinStack的一键安装脚本确实方便,至少对于我这种水平不高的人来说,可以省去很多配置的工作。所以在用树莓派搭建lnmp的时候,第一反应也是想到用它。
安装过程很长,几乎需要几个小时的时间。睡觉前开始安装,第二天醒来机器自动待机了,也不知道安装得怎么样了。
重启树莓派之后,打开浏览器,输入本地地址,貌似nginx没问题。打开phpmyadmin,页面正确,看来PHP也没问题了。输入用户名和密码,结果提示:

mysqli_real_connect(): (HY000/2002): No such file or directory

用控制台查看MySQL的运行状态,结果发现运行失败,难道是MySQL没安装正确?
卸载后重新安装问题依旧,OneinStack的问答中心里有人反映过同样的问题,二进制包安装会失败,但源码编译安装可以成功。
于是重新采用源码编译,结果睡觉前开始编译到早上醒来也没有编译成功,树莓派死机了。网上有说可以通过扩大swap来提高编译的性能,于是又折腾一下,照样是死机。
看来想要一键安装是办不到了,还好只是数据库没办法安装。其实手动安装也很简单,只需要在命令行中输入:

apt-get install mysql-server mysql-client

安装速度很快,没多久就彻底安装完毕。
注意:通过apt安装的mysql,管理员root的密码默认为空。

sudo mysql -uroot

直接连接成功。

sudo mysql -uroot -p

输入任意密码也可连接成功。
所以在使用前还需要设置一个密码,否则phpmyadmin不允许空密码登录。
连接mysql后输入如下代码:

USE mysql;
UPDATE user SET password=PASSWORD('123456') WHERE user='root';
UPDATE user SET plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
exit;

而后重启服务

sudo systemctl restart mysql
sudo systemctl status mysql

打开phpmyadmin,输入用户名和密码,再次出现

mysqli_real_connect(): (HY000/2002): No such file or directory

之前是因为mysql的运行问题,而这次安装运行都没有问题,为什么还是这样呢?
通过网上的搜索结果,原来是因为php中配置的myqli没有和实际的mysql.sock对应正确。
通过命令行登录mysql,通过status命令获取mysql.sock的路径,打开php.ini文件,找到mysqli.default_socketpdo_mysql.default_socket两项并修改如下:

mysqli.default_socket = /var/run/mysqld/mysqld.sock
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

/var/run/mysqld/mysqld.sock是mysql.sock的默认路径,根据实际情况填写。
最后重启php

service php-fpm restart

另外:由于树莓派的SD卡容量有限,所以安装完毕之后可以把oneinstack删除掉,或者至少把oneinstack/src目录下的内容全部删除干净,这样可以多处1个G左右的容量。


备注:
禁止自动待机和提高swap请参加《树莓派的常用设置》一文中的内容。

最后修改:2020 年 03 月 20 日
如果觉得我的文章对你有用,请随意赞赏