轉自:https://www.centos.bz/2017/07/nginx-php-fpm-502-error/php
在Ubuntu+Nginx+PHP環境下部署好之後,訪問網站報錯502,在後臺nginx error_log裏看到如下報錯信息(nginx日誌路徑:/var/log/nginx)nginx
2017/07/29 10:59:15 [error] 5622#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 183.14.134.39, server: xx.xx.xx.xx, request: 「GET /index.php HTTP/1.1」, upstream: 「fastcgi://127.0.0.1:9001」, host: 「xx.xx.xx.xx」
一般這個報錯是表示php-fpm這個服務未啓動,因爲默認是配置的9000端口,執行netstat -anp|grep 9000確實沒有看到相關進程。web
但執行命令查詢php-fpm是running狀態ubuntu
# /etc/init.d/php7.0-fpm status ● php7.0-fpm.service – The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2017-07-29 11:52:47 CST; 3h 43min ago Process: 7191 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS) Main PID: 7200 (php-fpm7.0) Status: 「Processes active: 0, idle: 2, Requests: 54, slow: 0, Traffic: 0req/sec」 CGroup: /system.slice/php7.0-fpm.service ├─7200 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─7203 php-fpm: pool www └─7204 php-fpm: pool www Jul 29 11:52:47 iZwz96f0gkw4blayus6g2yZ systemd[1]: Starting The PHP 7.0 FastCGI Process Manager… Jul 29 11:52:47 iZwz96f0gkw4blayus6g2yZ systemd[1]: Started The PHP 7.0 FastCGI Process Manager.
查看/etc/php/7.0/fpm/pool.d/www.conf和/etc/php/7.0/fpm/php-fpm.conf發現如下參數:centos
listen = /run/php/php7.0-fpm.sock
查閱資料後才知道,原來php-fpm支持網絡端口監聽和socket兩種方式,但後者效率更高。網絡
針對該問題的解決方案是,修改nginx/conf/vhosts下的conf文件,php7
將fastcgi_pass 127.0.0.1:9000;修改成fastcgi_pass unix:/run/php/php7.0-fpm.sock;socket
重啓Nginx服務後,WEB訪問依然報錯502,繼續定位分析。php-fpm
在nginx error_log日誌中出現瞭如下新的報錯內容:網站
2017/07/29 11:24:47 [crit] 6114#0: *1 connect() to unix:/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 183.14.134.xx, server: 112.74.89.xx, request: 「GET / HTTP/1.1」, upstream: 「fastcgi://unix:/run/php/php7.0-fpm.sock:」, host: 「112.74.89.xx」
而後找到/etc/php/7.0/fpm/pool.d/www.conf文件,作如下處理:
註釋掉
;listen.owner = www-data
;listen.group = www-data
將mode值修改成0666
listen.mode = 0666
最後,執行/etc/init.d/php7.0-fpm restart重啓php-fpm服務,執行/etc/init.d/nginx restart重啓Nginx服務,問題解決!!!