加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

无法使用PHP和PDO从另一个CentOS7访问CentOS 7 Postgresql Serve

发布时间:2020-12-13 13:45:42 所属栏目:PHP教程 来源:网络整理
导读:开始 服务器1是我的CentOS 7生产服务器.它包含Apache,ssh和Postgresql数据库. 服务器2是我的CentOS 7测试服务器.它包含Apache,ssh和测试数据库. 两台服务器都设置了firewalld以接受22,80和443. 两台服务器都具有以下设置. sudo setsebool httpd_can_network_
开始

服务器1是我的CentOS 7生产服务器.它包含Apache,ssh和Postgresql数据库.

服务器2是我的CentOS 7测试服务器.它包含Apache,ssh和测试数据库.

两台服务器都设置了firewalld以接受22,80和443.
两台服务器都具有以下设置.

sudo setsebool httpd_can_network_connect_db 1

我怎么知道这些端口是开放的?

我可以ssh(端口22).我可以通过http和https(端口80和443)看到“测试1,2,3 …”测试页面.我可以使用SQL Maestro,DBeaver,DBSchema等访问Postgresql(端口5432).

问题

我可以从任何地方远程使用DbSchema,HeidiSQL,Postgresql SQL Maestro等访问服务器1上的Postgresql.但是,我无法使用PHP和PDO从Server 2连接.它总是导致[08006]超时.

我试过以下,但没有帮助;
sudo setsebool httpd_can_network_connect 1

问题

如何使用PHP从服务器2访问服务器1上的Postgresql数据库?我是CentOS7的新手.在使用其他Linux发行版之前我已经完成了这个,没有任何问题.我缺少什么SELinux /其他设置?

解决方案(下)

请参阅以下亚历山大的答案.我以为在防火墙-cmd中启用了5432.
当我发出以下命令时

sudo firewall-cmd --zone=public --list-services

只列出了dhcpv6-client http ssh https!我的postgresql发生了什么事?
我只是发出以下命令使服务永久化;

sudo firewall-cmd --add-service=postgresql --permanent
正如您在问题中提到的,您在firewalld中只打开了三个端口.您应该在防火墙上打开端口5432.

另外你应该检查哪些IP监听postgres,它只能在127.0.0.1:5432上收听.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读