pg_connect-php脚本可以从命令行工作,但不能从网页工作
我有一个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的行是: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.
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
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