php7.0-fpm.sock的地址在哪里

2022-08-30 18:59:11

我有一个具有目录结构的简单项目

我正在为我的drupal站点设置nginx配置,对于我一直在使用,但我想按照这个conf中的建议使用unix套接字:fastcgi_pass127.0.0.1:9000

 # PHP 7 socket location.
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

但我找不到php/php7.0-fpm.sock;

我在我的 centos 发行版中有以下路径

/var/run/php-fpm/php-fpm.pid

答案 1

检查 php-fpm 配置,其中将创建套接字:

$ cat /etc/php/7.0/fpm/pool.d/www.conf

查找 ,例如:listen

listen = /run/php/php7.0-fpm.sock

php-fpm 会在您启动进程创建套接字文件。

sudo service php7.0-fpm stop
sudo service php7.0-fpm start

检查目录是否创建了套接字文件:

$ cd /run/php && ls -la


答案 2

首先检查是否正在您的系统上运行,为此,您可以使用例如:php-fpmpgrep

# 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

在这种情况下,它显示已启动并正在运行,并使用配置文件 。在检查配置文件并尝试检查指令之前,您可以快速查看 /proc/net/unix,例如:/etc/php-fpm.conflisten =

# grep php /proc/net/unix

这可能会返回如下内容:

ffff8800bfb2f400: 00000002 00000000 00010000 0001 01 28561 /tmp/php-fpm.sock

在这种情况下,它表明php-fpm套接字的路径位于可以通过检查conf来验证,在这种情况下是:/tmp/php-fpm.sock/etc/php-fpm.d/www.conflisten= /tmp/php-fpm.sock

如果您没有得到任何结果并且已启动并运行,通过检查配置,您可能会发现通过在TCP套接字上列出来使用默认值:php-fpm

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

如果套接字存在,如果应该打印出如下内容:

/var/run/php/php7.0-fpm.sock: socket

推荐