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

前端之家收集整理的这篇文章主要介绍了无法使用PHP和PDO从另一个CentOS7访问CentOS 7 Postgresql Server前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
开始

服务器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上收听.

猜你在找的PHP相关文章