在 php-fpm / CentOS6 上使用 pg_connect 返回 false

Using pg_connect returning false on php-fpm / CentOS6

我现在正在 CentOS/nginx/postgresql/php(php-fpm) 上开发一个站点。

问题:

我有这样一个数据库连接代码,它阻塞了:

$dbcon = pg_connect(
    "host=localhost port=5432 dbname=shex_utf8 user=webmaster password=webmaster"
);
var_dump($dbcon);

当我 运行 访问 http://example.com/dbcon.php

时,它只是 return 错误

我没有看到显示任何错误或警告。

直接php脚本执行:SUCCESS

但是如果我打电话:

php < dbcon.php

这是 returning:

resource(5) of type (pgsql link)

使用 httpd:失败

我把http服务器从nginx换成了httpd,问题依旧

使用 spawn-fcgi:成功

然后我停止了 php-fpm 服务,运行 一个 spawn-fcgi 代替,没有问题。


问题:

php-fpm 怎么了?我如何配置 php-fpm 并解决该问题?

那是因为 selinux 设置。

解决方法:

setsebool -P httpd_can_network_connect_db 1