错误信息展示
注意:【PHP52版本】和【PHP54版本以上不同】,以下为52版本示例,54以上版本最后说明
connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) while connecting to upstream
出现以上问题请检查nginx和php-fpm的配置:
1.nginx配置文件nginx.conf,找到其中配置php-fpm路径的地方
location ~\.php$ {
root /home/xxxx;
fastcgi_pass unix:/home/xxx/php/var/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
其中fastcgi_pass为配置nginx与php-fpm的交互路径,一般有两种方式
sock方式:
fastcgi_pass unix:/home/xxx/php/var/php-cgi.sock;
http方式:
fastcgi_pass 127.0.0.1;9000;
任选其中一种即可,但必须和php-fpm的配置一致。
2.php-fpm配置文件php-fpm.conf,找到其中配置启动方式的地方
<workers>
<section>
<value name="listen_address">127.0.0.1:9000</value>
...//省略其他配置
</section>
</workers>
其中配置为127.0.0.1:9000与nginx中的配置unix:/home/xxx/php/var/php-cgi.sock不符,所以导致报错。
修改php-fpm配置为:
/home/xxx/php/var/php-cgi.sock
或者修改nginx配置为:
fastcgi_pass 127.0.0.1;9000;
都可以解决以上问题。
【54以上版本说明】
54版本中默认端口为9001,修改端口或者修改成php-cgi.sock方式即可
php-fpm.conf中
listen = 127.0.0.1:9001
或
listen = /tmp/php-cgi-54.sock
listen.owner = www
==注意:这里www替换成你预设的nginx访问用户==
nginx.conf中
fastcgi_pass 127.0.0.1:9001;
或
fastcgi_pass unix:/tmp/php-cgi-54.sock;