pg_connect – php脚本可以从命令行运行,但不能从网页运行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了pg_connect – php脚本可以从命令行运行,但不能从网页运行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1477字,纯文字阅读大概需要3分钟。
内容图文
![pg_connect – php脚本可以从命令行运行,但不能从网页运行](/upload/InfoBanner/zyjiaocheng/773/7224de022a9b45e79ee0123e6bdd08d3.jpg)
我有一个CentOS apache web服务器,我已经设置了访问我们的数据库服务器(也是CentOS).数据库服务器上的pg_hba.conf中有一个Web服务器条目.我可以在运行Web服务器的机器的命令行(使用bash下的“php -a”)上无问题地连接.这是我的脚本(凭据损坏)
if(pg_connect("host=192.168.6.11 port=5432 dbname=C_test user=Cuser password=c1811wet")) {
echo 'connected';
} else {
echo 'not';
}
从命令行运行此脚本时,我得到“连接”.当我作为网页运行时(http://some.host.name/test.php) – ‘不’.
想法?我的搜索都引导我进入postgresql.conf中的listen =’*’设置或将web服务器ip添加到pg_hba.conf – 但这两个都已到位.
更新:
@Jorge – 网络服务器和数据库服务器在不同的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 – 看起来我正在使用相同的/etc/php.ini,并在命令行和web服务器上解析相同系列的其他ini文件(除了apc.ini,在命令行上被忽略).我只是使用phpinfo()来显示加载的配置文件并在两个环境中运行它.
解决方法:
我就这个问题达成了决议.
>首先,我去了我的dbserver并在postgresql日志上运行了tail -f.这表明来自网页的请求甚至没有到达dbserver,而相同的脚本从命令行运行,已连接.
StackOverflow上的> another helpful post揭示了解决方案 – 这是一个SELinux问题,由以下内容修复:
sudo setsebool -P httpd_can_network_connect_db on
内容总结
以上是互联网集市为您收集整理的pg_connect – php脚本可以从命令行运行,但不能从网页运行全部内容,希望文章能够帮你解决pg_connect – php脚本可以从命令行运行,但不能从网页运行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。