php7.0-fpm.sock位于何处

时间:2017-06-26 10:00:06

标签: php nginx unix-socket

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

我正在为我的drupal网站设置nginx配置,对于fastcgi_pass我一直在使用127.0.0.1:9000,但我想使用这个conf中建议的unix套接字:

 # 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

5 个答案:

答案 0 :(得分:18)

检查 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

答案 1 :(得分:9)

首先检查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来验证该路径,在这种情况下为:{{1} }

如果未得到任何结果并且listen= /tmp/php-fpm.sock已启动并正在运行,则通过检查配置可以发现它是通过在TCP套接字上列出来使用默认设置的:

php-fpm

您可以更改某些内容以在Unix套接字上进行监听,例如建议的conf:

listen = 127.0.0.1:9000

在某些Linux发行版中,通常会使用:

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

修改配置后,不要忘记重启服务listen.owner = www-data listen.group = www-data listen.mode = 0660 。要检查套接字是否已创建,您可以执行以下操作:

systemctl restart php-fpm

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

$ file /var/run/php/php7.0-fpm.sock

答案 2 :(得分:2)

您可以通过运行

看到它
$ ss --unix |grep 'php' 

答案 3 :(得分:0)

很可能安装了较旧的libpcre3并满足了php7.0软件包中的依赖关系,但只有较新的库软件包才提供pcre_jit_stack_free。

在这种情况下,请执行apt-get install libpcre3安装,您就很好了。

参考号:https://github.com/oerdnj/deb.sury.org/issues/372

希望对您有帮助。

答案 4 :(得分:0)

使用此功能:

cat /etc/php/7.0/fpm/pool.d/www.conf | grep 'listen ='
  

输出示例:监听= /run/php/php7.2-fpm.sock

或者对于通用php版本:

cat /etc/php/$(php -r "echo PHP_VERSION;" | grep --only-matching --perl-regexp "7.\d+")/fpm/pool.d/www.conf | grep 'listen ='