CentOS 7上php-fpm无法启动的问题处理

=Start=

缘由:

现在自用的Linux主机系统我都是选的CentOS 7,用的PHP版本也升级到了PHP 7。在之前的主机、博客维护过程中已经出过不少问题,这次又碰到了一个问题——在主机因维护而重启后php-fpm没有正确启动导致博客无法正常访问,解决办法和之前的不太一样,所以在此记录一下,方便以后查阅、参考。

正文:

参考解答:
0、一些辅助命令

1、systemd的系统启动项

应该是从CentOS 7开始,Linux服务管理器开始用systemd来替换之前的SysVinit,很多命令和之前不太一样,具体的可以参考之前记录的一篇文章「Linux的systemd相关知识学习」,这里只提一点:

&

2、php-fpm启动失败的原因

即,没有 /var/run/php-fpm/php-fpm.sock 这个文件,导致无法绑定监听端口/文件,初始化失败。

之前出现这种问题,一般是以下原因之一:

  • php-fpm的配置文件里的listen.owner/group和Nginx配置文件里的user/group不匹配,导致权限不够;
  • php-fpm的配置文件里的listen和Nginx配置文件里的fastcgi_pass不匹配,导致监听和读取的不是同一个socket文件;
3、临时解决办法

但这次不是,这次的上面2个配置都是对的,但就是 /var/run/php-fpm/php-fpm.sock 这个文件不存在,解决办法也很简单,就是:

不过,一旦机器重启,/var/run/php-fpm/php-fpm.sock 这个文件就又没了,而且 /var/run/php-fpm/ 这个目录也没了,所以,这种手工创建目录、文件的方式只能临时生效。

4、长期解决办法

如果想要找到一个长期有效的办法,那就需要定位问题以及其背后的原因,否则问题还是会一直存在。

综上,我将原先php-fpm的配置文件里的listen和Nginx配置文件里的fastcgi_pass都改成了 /var/run/php-fpm.sock ,然后将php-fpm和Nginx服务都加入系统启动项,重启系统,一切OK。

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3921.html

《CentOS 7上php-fpm无法启动的问题处理》上有3条评论

  1. 如何通过nginx、php-fpm、php的日志调试程序
    https://mp.weixin.qq.com/s/CPsjXITMHfpIWV2ylxknrA

    在这四个层面(nginx、php-fpm主进程、php-fpm pool工作进程、php)都有与日志有关的指令,接下去分别描述。

    php.ini
    每一个php解析器都有一个php.ini,该文件定义了很多php的默认行为,从日志的角度看,有三个指令很重要。
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
    display_errors=off
    error_log=/var/log/phperror.log

    nginx.conf
    对于nginx来说,可以通过以下指令控制访问日志和错误日志,非常的简单:
    access_log logs/access.log main;
    error_log logs/error.log;

    php-fpm pool 日志
    比如:
    fpm/pool.d/www.test.com.conf
    fpm/pool.d/www.test.cn.conf

    php-fpm 日志
    暂时可以忽略

发表评论

电子邮件地址不会被公开。 必填项已用*标注