Сейчас я занимаюсь разработкой сайта на CentOS / nginx / postgresql / php (php-fpm).
И у меня есть такой код подключения к базе данных, который блокирует:
$dbcon = pg_connect(
"host=localhost port=5432 dbname=shex_utf8 user=webmaster password=webmaster");
var_dump($dbcon);
Он возвращает false только когда я запускаю этот код при посещении http://example.com/dbcon.php
Я не видел ни ошибки, ни предупреждения.
Но если я позвоню:
php < dbcon.php
Это возвращалось:
ресурс (5) типа (ссылка pgsql)
Я изменил http-сервер с nginx на httpd, проблема все еще существует.
А затем я остановил службу php-fpm и вместо этого запустил spawn-fcgi, проблем не было.
Что случилось с php-fpm? Как я могу настроить PHP-FPM и обойти проблему?
Это было из-за настройки selinux.
Работал вокруг:
setsebool -P httpd_can_network_connect_db 1
Других решений пока нет …