nginx和PHP-FPM之间的通信失败

我刚刚收到了我的第一个VPS,并且想要安装一个nginx + PHP + MariaDB设置。 而且,我确实做到了,但是configuration时遇到问题。

让nginx提供一个静态的.html文件是没有问题的,试图提供一个dynamic的PHP文件,但只是显示一个公共的“502坏的网关”消息。 我对nginx日志文件的解释表明了nginx和PHP-FPM之间的通信错误,但我是一个血腥的新手,所以这可能是非常错误的。

PHP5-fpm.log:

[05-Aug-2012 21:50:10] NOTICE: fpm is running, pid 10982 [05-Aug-2012 21:50:10] NOTICE: ready to handle connections 

nginx的error.log的一部分:

 2012/08/06 00:13:20 [error] 11419#0: *4 connect() failed (111: Connection refused) while connecting to upstream, client: REMOVED, server: lo$ 2012/08/06 00:23:21 [error] 11419#0: *9 connect() failed (111: Connection refused) while connecting to upstream, client: REMOVED, server: lo$ 2012/08/06 00:23:22 [error] 11419#0: *9 connect() failed (111: Connection refused) while connecting to upstream, client: REMOVED, server: lo$ 2012/08/06 00:23:23 [error] 11419#0: *9 connect() failed (111: Connection refused) while connecting to upstream, client: REMOVED, server: lo$ 

我已经查看了大部分configuration,但是我几乎把所有的默认设置放在了第一位。 PHP-FPM仍然在端口9000上运行,一个nginx应该查询…

这是一个很长的时间(因为我不知道你的发行版,版本或configuration),但如果我没有记错PHP-FPM的最近的默认configuration(至less在Debian上)切换到基于文件的通信(UNIX套接字)的TCP。

您可以通过检查PHP-FPM的configuration文件,或者使用lsofnetstat -alsof netstat -a

编辑:刚刚检查我的设置。 我在这里使用Apache,所以这不会直接帮助,但FastCGIconfiguration的行读取:

 FastCgiExternalServer /var/run/apache2/php5.fcgi -idle-timeout 600 -flush -socket /var/run/php5-fpm.sock 

正如你所看到的,它指的是一个套接字文件,即/var/run/php5-fpm.sock