服务器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 /其他设置? …
见亚历山大的回答如下。 我以为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。