pg_connect-php脚本可以从命令行工作,但不能从网页工作

pg_connect-php脚本可以从命令行工作,但不能从网页工作,php,postgresql,Php,Postgresql,我有一个CentOS apache web服务器,我已经设置好访问我们的数据库服务器(也是CentOS)。数据库服务器上的pg_hba.conf中有一个web服务器条目。我可以在运行Web服务器的机器的命令行(使用bash下的“php-a”)上进行连接,而不会出现问题。这是我的脚本(凭据已损坏) 当从命令行运行此脚本时,我会“连接”。当我作为网页运行时()-“不是” 想法?我的搜索都会导致我在postgresql.conf中使用listen='*'设置,或者将web服务器ip添加到pg_hba.

我有一个CentOS apache web服务器,我已经设置好访问我们的数据库服务器(也是CentOS)。数据库服务器上的pg_hba.conf中有一个web服务器条目。我可以在运行Web服务器的机器的命令行(使用bash下的“php-a”)上进行连接,而不会出现问题。这是我的脚本(凭据已损坏)

当从命令行运行此脚本时,我会“连接”。当我作为网页运行时()-“不是”

想法?我的搜索都会导致我在postgresql.conf中使用listen='*'设置,或者将web服务器ip添加到pg_hba.conf中,但这两种设置都已就绪

更新:

@Jorge-Web服务器和db服务器位于不同的IP上

@Nicarus添加到pg_hba.conf的行是:

host    C_test        Cuser 192.168.100.166     255.255.255.255 md5
我很确定这是为了允许从这个IP进行访问——如前所述,如果我在它连接的命令行上运行脚本,而不是从网页上运行脚本

@lwb-感谢您的建议-我尝试将建议的行添加到pg_hba.conf,并重新启动postgresql服务。服务提供得很干净,但行为没有变化-我可以在命令行上连接,但不能从网页上连接


@Massimiliano—看起来我在命令行和Web服务器上使用相同的/etc/php.ini,并解析相同系列的附加ini文件(除了apc.ini,它在命令行中被忽略)。我只是使用phpinfo()来显示加载的配置文件,并在两种环境中运行它。

我就这个问题达成了解决方案

  • 首先,我转到我的dbserver并在postgresql日志上运行tail-f。这表明来自web页面的请求甚至没有到达dbserver,而相同的脚本是从命令行connected运行的

  • 在StackOverflow上显示了解决方案-这是一个SELinux问题,通过以下方式修复:

    sudo setsebool-p httpd_can_网络_connect_db on


站点是否与数据库位于同一服务器上?将添加的记录发布到pg_hba.conf文件中。是否允许您的web服务器IP连接?在pg_hba.conf上尝试此操作:
host all 0.0.0.0/0 trust
php cli和php apache的配置是否相同?通常,这两种配置并不相同
host    C_test        Cuser 192.168.100.166     255.255.255.255 md5