记一次简单的服务器修复

Linux,技术向 2019-12-06

修复

  • 起因

今天戳开自己博客突然发现只显示出了Ngnix的默认错误界面, 而我挂在同一服务器上的seafile和gitea都没有问题, 就意识到大概是PHP挂了.

  • 定位问题

上服务器用ps aux | grep php一看, 果然是PHP没启动起来, 尝试重新启动发现并没有效果.
于是systemctl status php-fpm看看发生了什么, 第一行大概提示的是找不到mbstring.

20191206095800367_28116.png

一开始感觉只要把这个文件补上大概就可以了, 于是pacman -F mbstring看看.........没有
我有点不信邪...然后pacman -Fx ".*mbstring.*", 为啥mbstring.h的头文件都有但是没有mbstring.so啊不科学

网上查了查发现, Arch的PHP在打包的时候会加上--enable-mbstring参数将mbstring嵌入到PHP的可执行文件里面去, php -m也验证了这一点...
那你还提示个球啊摔..............

最后发现是, 我之前在php.ini里面加了句extension=mbstring, 然后PHP就会尝试去加载这个外部模块...emmmmmm

以及...其实...他就是只是报个错而已...对于正常启动没有任何影响

  • 重新定位问题

修改了php.ini以后, php-fpm.service还是启动不起来, 现在的报错变成了这样

20191206100425652_4564.png

怎么会没有权限呢? 我去看了一眼/run/php-fpm/php-fpm.sock的权限, root/group都是root, 然后看了看php-fpm.service的内容也没有指定用户和组, 那就应该是以root权限启动的啊

然后我顺手看了一眼php-fpm.conf.d/www.conf... 咦...有个pacnew文件, 是更新了啥吗? 然后我就懂了...

20191206100720401_5274.png)

所以 问题大概是PHP-FPM更新以后改进了权限运行策略...emmmmmm

于是 把这部分照着pacnew修改一下之后就好了= =

总结

滚动更新一大缺点就是...上游更新可能导致服务莫名其妙就被更挂了...

当然, 我的第一反应也是肯定更新了啥把php更挂了, 然后看了看官方的News啥也没提, 重新安装了几遍包也没啥用

........................嗯 好吧

顺带一提我的PHP-FPM版本是7.4.0-2

本文由 SLKun 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

只有地板了

  1. Coelacanthus
    Coelacanthus

    我一般滚包看到有 pacnew 滚完会先去合并下文件

添加新评论