首先检查php-fpm 是否在您的系统上运行,为此您可以使用pgrep 例如:
# pgrep -fa php-fpm
5666 php-fpm: master process (/etc/php-fpm.conf)
5667 php-fpm: pool www
5668 php-fpm: pool www
5669 php-fpm: pool www
5670 php-fpm: pool www
5671 php-fpm: pool www
在这种情况下,它显示已启动并正在运行并使用配置文件/etc/php-fpm.conf。在检查配置文件并尝试检查listen = 指令之前,您可以快速查看/proc/net/unix,例如:
# grep php /proc/net/unix
这可能会返回如下内容:
ffff8800bfb2f400: 00000002 00000000 00010000 0001 01 28561 /tmp/php-fpm.sock
在这种情况下,它表明 php-fpm 套接字的路径位于 /tmp/php-fpm.sock 中,可以通过检查 /etc/php-fpm.d/www.conf 中的 conf 来验证,在这种情况下为:listen= /tmp/php-fpm.sock
如果您没有得到任何结果并且php-fpm 已启动并运行,通过检查配置,您可能会发现在 TCP 套接字上列出使用默认值:
listen = 127.0.0.1:9000
您可以更改一些内容以在 Unix 套接字上侦听,例如您建议的 conf:
listen = /var/run/php/php7.0-fpm.sock
在某些 Linux 发行版中通常使用此选项:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
修改配置后不要忘记重启服务systemctl restart php-fpm。要检查套接字是否已创建,您可以这样做:
$ file /var/run/php/php7.0-fpm.sock
如果 socket 存在 if 应该打印出如下内容:
/var/run/php/php7.0-fpm.sock: socket