在php中使用pg_connect()的错误500(致命错误)

时间:2016-09-28 16:53:06

标签: php database postgresql centos7

我试图使用pg_connect访问另一台服务器上的postgres,

我确实打开了远程访问,我可以使用bash连接到我的postgres服务器!我确实在config中托管了所有client_ip / 32信任但是当我试图使用pg_connect时,我得到错误500! pgsql也已安装,我已使用function_exists('pg_connect')进行了检查,然后我返回true! 我的代码是:

$dbconn = pg_connect("host=remote_IP port=5432 dbname=myDB user=postgres") or die("Could not connect");

我也试过这个并再次致命错误500

    $dbconn = pg_connect("host=remote_IP port=5432 dbname=myDB
 user=another_super_user_i_made password=user_password") or die("Could not connect");

有什么问题?

2 个答案:

答案 0 :(得分:0)

当您能够从网络上的一台计算机连接到服务器,但从另一台计算机获得连接超时问题时,通常是由于以下几种情况之一。

1)DNS。您正在测试的计算机("远程访问"当您调用它时)能够解析DNS名称,而运行PHP代码的Web服务器则不能。您可以使用实际的IP地址而不是DNS名称来测试它。

2)连通性。不同的机器在网络中以不同的方式连接。如果您能够通过"远程访问"来获取IP。机器,但Web服务器连接到它时遇到问题("连接超时"),尝试直接连接到该Web服务器(使用"远程访问"如SSH),看看你是否可以从那里手动连接。

如果它不是网络相关问题,则可能是您的默认PG超时问题。尝试使用连接字符串手动设置它们。具体来说," connect_timeout"选项,像这样:

$d=pg_connect('host=example.com user=pgsql dbname=postgres connect_timeout=5');

答案 1 :(得分:0)

主机阻塞问题! 我的客户端托管未启用远程访问数据库! 你应该咨询你的托管,他们可以追踪你的问题