在CentOS上的Nginx + PHP-fastcgi + MySQL:所有使用MySQL连接的文件中的502错误网关

我试图在运行CentOS的VPS上安装带有PHP和MySQL的Nginx服务器。

我按照这个教程来安装所有的软件。

他服务器正在运行,虚拟主机正在工作,但是当我尝试在PHP文件中连接到MySQL时,服务器返回502 Bad Gateway。

我是Linus的新手,所以我不知道在哪里find所有的日志等。

我在虚拟主机日志中发现了这个错误,但我不知道这是什么意思。

2012/04/15 23:07:33 [error] 22360#0:* 3连接失败(111:连接被拒绝)连接上游时,客户端:212.45.63.107,服务器:@host,请求:“GET / test.php HTTP / 1.1“,上游:”fastcgi://127.0.0.1:9000“,主机:”@host“

(@host是我的服务器)

看起来像PHP将无法连接到您所使用的http服务器和您的PHP到http服务器的方式的MySQL争端。

首先,检查你的MySQL是否正在运行,并听取(你可能会忘记运行它)。 只需从CLI运行mysql ,看看它是否连接。 您可能需要使用-h host密钥将mysql客户端指向正确的主机。

然后,尝试运行最简单的脚本(如

 <?php $link = mysql_connect('hostname', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> 

所以你会看到有什么错误。 如果你的MySQL在localhost(127.0.0.1)上监听,那么使用'localhost'作为主机名(例子中的'hostname'),如果它监听套接字,然后使用套接字path(如'/ tmp / mysql' )。

祝你好运!

有什么东西在9000端口上运行? 检查netstat -anp | grep :9000的输出 netstat -anp | grep :9000 。 它看起来像PHP没有运行(或防火墙)。

PHP本身是否真的在运行? 检查ps aux | grep php的输出 ps aux | grep php 。 如果不是的话,你应该检查你做了什么来再次启用它作为服务。