PHP 无法在 Centos 7 Selinux 中连接到 postgreSQL

PHP 无法在 Centos 7 Selinux 中连接到 postgreSQL

迁移到新的 VPS 并在新服务器(Centos 7)上尝试网站后,Selinux 以某种方式阻止 http 访问 Postgresql:

pg_connect():无法连接到 PostgreSQL 服务器:无法连接到服务器:权限被拒绝服务器是否在主机“127.0.0.1”上运行并在端口 6432 上接受 TCP/IP 连接

是的,我的 postgresql 位于端口 6432 上,因为我们使用 pgbouncer 来减少服务器负载。我四处搜索,发现这是因为 Selinux,所以我使用 selinux 命令允许 httpd 连接到数据库setsebool -P httpd_can_network_connect_db on,它像我在 Selinux 配置中看到的那样工作,sestatus -b它已关闭ON,但问题仍然存在...

pg_connect():无法连接到 PostgreSQL 服务器:无法连接到服务器:权限被拒绝服务器是否在主机“127.0.0.1”上运行并在端口 6432 上接受 TCP/IP 连接

有趣的是,我知道这是因为 Selinux 导致的,当我使用setenforce 0它时它可以工作并且毫无问题地连接到 postgresql。我该怎么办?

答案1

我在波格丹·库斯坦。这是因为 Selinux 接受 5432 作为 Postgresql 端口,并且不与其他端口一起使用。您可以使用semanage port -l命令检查 Selinux 标记端口的可接受端口。您可以使用“semanage port -a”命令和其他一些参数将端口添加到标记端口,在我的情况下:

semanage port -a -t postgresql_port_t -p tcp 6432

相关内容