1. 程式人生 > >php-fpm sock文件權限設置

php-fpm sock文件權限設置

ups def png 無法 pytho 啟動 rmi value efault

在編譯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文件權限設置