这个问题大概是是从昨晚我更新程序开始的,昨晚我登录到我服务器的宝塔面板,看到软件商店里面web组件有更新,于是我就顺手把它们都更新了,我启动了三个版本的PHP(7.4、8.0、8.1)的更新,还切换了nginx版本(1.21改1.22),同时还更新了MySQL,这些组件我当初从宝塔安装的时候选的是”编译安装“,所以后续的更新都是由宝塔面板自动排队编译安装的,最开始我没太当回事毕竟我经常更新组件
然后今天凌晨,宝塔发来通知邮件说数据库备份失败,我也没在意,因为那会MySQL正在编译安装中
直到今天下午上课的时候,我在别的服务器上搭建的一个自己魔改过的由PHP写的学习通自动签到程序运行出错,我才发现不对劲
而这个程序的出问题,导致我和另一个依靠这个程序自动签到的我同学,被老师问咋回事然后帮忙代签了。。。。。。
我最开始也没想那么多,以外只是简单的oom,毕竟服务器ram就那么点,就上宝塔面板去启动MySQL,结果开不起来,报错说是/tmp/mysql开头的一个sock文件找不到,我也没想那么多,既然文件没了那就去创建,复制了报错中的完整文件路径去命令行touch它,结果touch命令也报找不到这个文件,然后我用ll命令看了下才知道,是整个/tmp目录都没了,然后我就直接mkdir /tmp,然后再去touch那个文件,之后再去启动MySQL,又收获新的报错,大意是权限问题,上网查找方案,用了宝塔的修复脚本,结果还是报错
仔细看了下报错,说是无法创建或写入/tmp下的一个目录,之后我直接把/tmp目录的权限改成777之后MySQL就能启动了,但没想到事情并没就此结束,到了晚上我在政治课上摸鱼写代码的时候写着写着发现访问PHP文件502了,看了下宝塔,我用的PHP81的状态变成了关闭,还开不起来,也是报/tmp/php-fpm81.sock不存在,touch了一下问题解决,然后我顺手执行了一下yum update更新了一下软件包,随后发现PHP又502了。。。。。。然后tmp目录又不见了。。。。。。离谱的是pma也炸了。。。
可能是因为我忘记开省电模式的原因,我笔记本没电了,然后我在手机上用现有的条件ssh到服务器上之后创建了tmp目录,之后赋权666,刷新发现pma的状态变成502了
然后我在手机上看了下服务器上别的网站的PHP,发现也跟着502
查看站点错误日志发现是权限不够
几个地方同时报权限不够,怀疑是tmp目录问题,因为想到之前/tmp的权限是777的时候是正常的,现在666就报502,故重新改回777尝试,发现问题解决
为啥tmp会消失啊
不知道。。。