php-fpm有两种listen方式,一种是通过端口来操作,一种是sock文件。
在nginx的server配置当中,如果设置为fastcgi_pass unix:/tmp/php-cgi.sock的话,有可能会出现502错误,这是以为nginx此项没有找到php-cgi.sock文件或者权限问题导致的,我们也可以改成fastcgi_pass:127.0.0.1:9000来修正这个错误 。
当我们用php-fpm来管理我们的php启动时,按照如下的配置,就会自动生成/tmp/php-cgi.sock文件,然后再访问的话就不回出现502 Gateway错误了。配置如下:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
注:将php.ini里的cgi.fix_pathinfo设置为0,不然会有漏洞~
来源:https://zhidao.baidu.com/question/920954746467195099.html