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

开始

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

服务器2是我的CentOS 7testing服务器。 它包含Apache,ssh和一个testing数据库。

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

sudo setsebool httpd_can_network_connect_db 1

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

我可以在(22号港口)ssh。 我可以通过http和https(端口80和443)看到“testing1,2,3 …”testing页面。 我可以通过使用SQL Maestro,DBeaver,DBSchema等(端口5432)访问Postgresql。

问题

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

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

问题

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

解决scheme(下)

见亚历山大的回答如下。 我以为5432是在firewall-cmd中启用的。 当我发出以下命令

 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。