php-fpm sock文件权限设置

Posted 小刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php-fpm sock文件权限设置相关的知识,希望对你有一定的参考价值。

在编译php-fpm时,若没有指定fpm用户,在配置文件中也没有指定用户,则sock文件会由root(启动php-fpm的用户)创建,其权限是srw-rw----

nginx一般由nginx用户启动,会导致无法读取sock文件,造成nginx返回502错误。

nginx日志会记录错误如下:

2018/09/12 17:06:17 [crit] 30735#0: *1 connect() to unix:/dev/shm/php-cgi.sock failed (13: Permission denied) while connecting t
o upstream......

解决办法是在配置文件中指定listen用户

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. 
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = fcgi
listen.group = wwwgroup
listen.mode = 0666

改完后重启php-fpm即可

注:sock文件存放在/dev/shm目录下,
此目录下将sock文件放在内存里面,有助于性能提升

 

以上是关于php-fpm sock文件权限设置的主要内容,如果未能解决你的问题,请参考以下文章

配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因

如何找到我的 php-fpm.sock?

php-fpm的pool

Nginx+php-fpm 502 504问题

Nginx/php-fpm umask 设置

Apache FastCgi、PHP-FPM、Suexec 权限被拒绝错误