Roundcube无法连接到PostgreSQL数据库

我试图在CentOS 5.5服务器上安装Roundcube,并使用PostgreSQL 8.1.22数据库。

安装程序脚本的第一页,检查是否存在php库等,给了我全面的绿色OK。 我什至去安装可选的。

第二页为我生成了两个configuration文件(main.inc.php和db.inc.php)。

第三页是出错的地方:

检查数据库configurationDSN(写入):不正确(MDB2错误:连接失败)

确保configuration的数据库存在并且用户具有写权限

DSN:pgsql:// roundcube:password @ localhost / roundcubemail

您在那里看到的信息(用户roundcube,密码密码,服务器本地主机和数据库roundcubemail)都是正确的。 数据库roundcubemail属于用户的roundcube,它具有写入权限。

我不知道为什么它不能连接到该数据库。 我在同一个服务器上用phpPgAdmin来pipe理它,它运行在相同的Apache上。

更新
一些更多的信息:我的postgres日志文件有一堆这些:
FATAL: no pg_hba.conf entry for host "127.0.0.1", user "roundcube", database "roundcubemail", SSL off
但是,我的pg_hba.conf文件有这样的:
# "local" is for Unix domain socket connections only
local all all trust
host all all 127.0.0.1/32 trust

使用telnet连接到本地主机和端口5432上的127.0.0.1工作正常。

上面的DerfK的答案是错误的。 你可以使用Unix套接字的PostgreSQL与roundcube提供你configuration好。 在db.inc.php中,它应该是:

 $rcmail_config['db_dsnw'] = 'pgsql://roundcube:*password*@unix(/tmp)/roundcube'; 

假设您已经在pgsql中为数据库“roundcube”创build了一个“roundcube”用户,密码为“ password ”在主postgresql.conf中,您应该通过更改以下内容来阻止在IP层上侦听:

 listen_addresses = '' unix_socket_directory = '/tmp' ssl = false # There's no point in using SSL on a local UNIX socket except wasting CPU 

另外,这是最重要的部分,您必须在pg_hba.conf中添加以下行:

 local all roundcube md5 

重新启动所有的东西,并且它比使用TCP连接更好,更快地工作(因为你避免了所有的IP封装)。