Невозможно получить доступ к серверу CentOS 7 Postgresql из другого CentOS7 с использованием PHP и PDO

Начальный

Сервер 1 - это мой рабочий сервер CentOS 7. Он содержит Apache, ssh и базу данных Postgresql.

Сервер 2 - мой тестовый сервер CentOS 7. Он содержит Apache, ssh и тестовую базу данных.

Оба сервера настроены с помощью firewalld на прием 22, 80 и 443. Оба сервера имеют следующие настройки.

sudo setsebool httpd_can_network_connect_db 1 ...

Как мне узнать, что эти порты открыты?

Я могу использовать ssh (порт 22). Я вижу тестовую страницу «Тестирование 1, 2, 3 ...» через http и https (порт 80 и 443). Я могу получить доступ к Postgresql с помощью SQL Maestro, DBeaver, DBSchema и т. Д. (Порт 5432).

...

Проблема

Я могу получить доступ к Postgresql на сервере 1 с помощью DbSchema, HeidiSQL, Postgresql SQL Maestro и т. Д. Удаленно из любого места. Однако я не могу подключиться с Сервера 2 с использованием PHP и PDO. Это всегда приводит к [08006] Тайм-ауту .

Я пробовал следующее, но не помогло; sudo setsebool httpd_can_network_connect 1

...

Вопрос

Как мне получить доступ к базе данных Postgresql на сервере 1 с сервера 2 с помощью PHP? Я новичок в 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
2
задан 4 April 2017 в 07:16
1 ответ

Как вы уже упоминали в вопросе, вы открыли только три порта в firewalld. Вы должны открыть порт 5432 на брандмауэре.

Также вы должны проверить, какой IP прослушивает postgres, он может прослушивать только на 127.0.0.1:5432.

.
2
ответ дан 3 December 2019 в 11:29

Теги

Похожие вопросы