最近在配置 php 环境的时候,遇到一个问题,明明配置了 nginx 的user和group,也配置了 php-fpm的 user和group,为什么还是会
报 502 错误呢
分析原因如下 当我们在 配置php-fm的配置文件的时候,如果listen 配置了tcp连接 如:listen = 127.0.0.1:9000 ,按上面的配置
运行不会有什么问题,但是如果配置了socket连接,那么就会有问题,需要配置 listen.owner和listen.group = nobody这两个参数,
这两个参数的解释如下:
; 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.
; Default Values: user and group are set as the running user
; mode is set to 0660
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
翻译过来就是:sock文件的读写用户 都必须和 web服务器的一致,这里就是要和nginx的用户一致,所以把这里配置一下,重启fpm和nginx
就可以了
那么 user/group 和 listen.owner/listen.group的区别是啥,前者是php-fpm启动的用户和用户组,后者是sock连接的用户和用户组,当
为 TCP 连接的时候 ,这个就不会有影响了。
