PHP无法连接到CentOS 7上的PostgreSQL

时间:2015-01-02 22:44:57

标签: centos php postgresql centos7

我在OSX上的VirtualBox中运行CentOS 7。 Apache,PHP 5.4和PostgreSQL 9.2都在运行。但是,当我的(简单)php脚本试图连接到PostgreSQL时,它不起作用:

  

警告:pg_connect():无法连接到PostgreSQL服务器:可以   不连接到服务器:权限被拒绝服务器是否在主机上运行   “127.0.0.1”并接受端口5432上的TCP / IP连接?在   第7行/var/www/html/pg.php

检查:

  • Apache正在运行
  • PHP很好,phpinfo()告诉我PostgreSQL功能可用
  • PostgreSQL 9.2正在运行
  • psql可以使用localhost或127.0.0.1以及192.168.178.111连接到数据库
  • 我在Mac上的
  • pgAdmin可以使用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连接不起作用...

出了什么问题?我错过了什么?

1 个答案:

答案 0 :(得分:9)

SELinux可能阻止了您的数据库连接。

确保设置正确的布尔值以允许您的Web应用程序与数据库通信:

sudo setsebool -P httpd_can_network_connect_db 1