Php

PHP無法在Centos 7 Selinux中連接到postgreSQL

  • June 26, 2016

遷移到新 VPS 並在新伺服器(Centos 7)上嘗試網站後,Selinux 以某種方式阻止 http 訪問 Postgresql:

pg_connect():無法連接到 PostgreSQL 伺服器:無法連接到伺服器:權限被拒絕伺服器是否在主機“127.0.0.1”上執行並接受埠 6432 上的 TCP/IP 連接

是的,我的 postgresql 在埠 6432 上,因為我們使用 pgbouncer 來減少伺服器負載。我四處搜尋,發現這是因為 Selinux,所以我使用 selinux 命令允許 httpd 連接到 db setsebool -P httpd_can_network_connect_db on,它的工作原理與我查看 Selinux 配置時一樣,sestatus -bON問題仍然存在……

pg_connect():無法連接到 PostgreSQL 伺服器:無法連接到伺服器:權限被拒絕伺服器是否在主機“127.0.0.1”上執行並接受埠 6432 上的 TCP/IP 連接

有趣的是我知道這是因為 Selinux 原因,當我使用setenforce 0它時它可以正常工作並連接到 postgresql 沒有任何問題。我該怎麼辦?

我在Bogdan Kuštan的幫助下找到了解決方案。這是因為 Selinux 接受 5432 作為 Postgresql 埠並且不能與其他埠一起使用。您可以使用命令檢查 Selinux 標記埠的可接受埠semanage port -l。您可以使用帶有一些其他參數的“semanage port -a”命令將埠添加到標記埠,在我的情況下:

semanage port -a -t postgresql_port_t -p tcp 6432

引用自:https://serverfault.com/questions/786401