PHP не может подключиться к PostgreSQL на CentOS 7

У меня 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

Проверки:

  • Apache работает
  • PHP в порядке, phpinfo () говорит мне, что функции PostgreSQL доступны
  • PostgreSQL 9.2 работает
  • PSQL может подключиться к базе данных, используя localhost или 127.0.0.1, а также 192.168.178.111
  • pgAdmin на моем Mac может подключиться к этой базе данных, используя IP-адрес 192.168.178.111
  • Iptables был отключен
  • pg_hba.conf был изменен, чтобы принимать все соединения без пароля (глупо, я знаю):

хост все все 0.0.0.0/0 доверие

Но 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 соединение не работает …

Что не так? Что мне не хватает?

6

Решение

Вероятно, SELinux блокирует подключение к вашей базе данных.

Убедитесь, что вы установили правильный логический параметр, чтобы ваше веб-приложение могло взаимодействовать с базой данных:

sudo setsebool -P httpd_can_network_connect_db 1
9

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]