Назад | Перейти на главную страницу

PHP не может подключиться к postgreSQL в Centos 7 Selinux

После миграции на новый VPS и проверки веб-сайта на новом сервере (Centos 7) Selinux каким-то образом предотвращает доступ http к Postgresql:

pg_connect (): невозможно подключиться к серверу PostgreSQL: невозможно подключиться к серверу: в разрешении отказано. Сервер работает на хосте «127.0.0.1» и принимает соединения TCP / IP на порт 6432

и да, мой postgresql на порту 6432 из-за pgbouncer, который мы используем для уменьшения нагрузки на сервер. Я погуглил и узнал, что это из-за Selinux, поэтому я использовал команды selinux, чтобы разрешить httpd-соединение с db setsebool -P httpd_can_network_connect_db on и он работает, как когда я смотрю в конфигурацию Selinux с sestatus -b это повернулось ON но проблема все еще существует ...

pg_connect (): невозможно подключиться к серверу PostgreSQL: невозможно подключиться к серверу: в разрешении отказано. Сервер работает на хосте «127.0.0.1» и принимает TCP / IP-соединения на порту 6432

Забавно то, что я знаю, что это из-за Selinux, когда я использую setenforce 0 Он работает и без проблем подключается к postgresql. что я должен делать?

Я нашел решение с помощью Богдан Куштан. Это потому, что Selinux принимает 5432 как порт Postgresql и не работает с другими портами. Вы можете проверить допустимые порты для помеченного порта Selinux с помощью semanage port -l команда. Вы можете добавить порты к помеченным портам с помощью команды "semanage port -a" с некоторыми другими параметрами и в моем случае:

semanage port -a -t postgresql_port_t -p tcp 6432