背景:配置了nginx,直接访问可以显示nginx的页面,但是配置成自己的php网站目录后,访问不了,于是查看nginx/error.log
看到这一样的报错
45454#0: *7 connect() to unix:/tmp/php-cgi.socket failed (2: No such file or directory) while connecting to upstream
网上搜索一番,很多都只是针对自己的问题处理,然后各种复制。
从错误来看,是找不到这个unix:/tmp/php-cgi.socket。
然后这socket来自于php-fpm的启动。
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,对于PHP 5.3.3之前的php来说,是一个补丁包 [1] ,旨在将FastCGI进程管理整合进PHP包中。如果你使用的是PHP5.3.3之前的PHP的话,就必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
于是:
1、检查有没安装成功(有)
2、有没启动成功

有的,黑色圈住部分为当前启动的sock
然后回到nginx.conf查看,有这玩意,然后替换之:


重启nginx:
页面显示OK。
总结:
没有搞过服务器的东西,后续遇到问题,先从log文件查起,从报错归因,然后跟着原因往上走。
本文解决了一个常见的Nginx配置问题,当尝试访问配置为PHP网站的目录时,遇到了45454#0错误,指出无法连接到unix:/tmp/php-cgi.socket。通过检查php-fpm状态和修改nginx.conf中的socket路径,最终成功解决了Nginx与PHP-FPM之间的连接问题。

682

被折叠的 条评论
为什么被折叠?



