在 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
我现在正在 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
我没有看到显示任何错误或警告。
直接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