У меня есть CentOS 7, работающий в VirtualBox на OSX. Все Apache, PHP 5.4 и PostgreSQL 9.2 работают. Но, когда мой (простой) php-скрипт пытается подключиться к PostgreSQL, он не работает:
Предупреждение: pg_connect (): невозможно подключиться к серверу PostgreSQL: не удалось подключиться к серверу: отказано в разрешении Сервер работает на узле «127.0.0.1» и принимает соединения TCP / IP на порту 5432? в /var/www/html/pg.php в строке 7
Проверки:
хозяин всего 0.0.0.0/0 trust
Но php не может подключиться … Это мой сценарий:
<?php ini_set('display_errors', 1); error_reporting(E_ALL); echo 'hello world!'; $conn = pg_connect('host=127.0.0.1 port=5432 user=postgres dbname=postgres'); ?>
Работа с внутренними соединениями (psql), внешние соединения также работают (pgAdmin на моем ноутбуке), но соединение php не работает …
Что происходит не так? Что мне не хватает?
Вероятно, SELinux блокирует подключение к базе данных.
Убедитесь, что вы установили правильное логическое значение, чтобы ваше веб-приложение могло разговаривать с базой данных:
sudo setsebool -P httpd_can_network_connect_db 1