Roundcube не может подключиться к базе данных PostgreSQL

Roundcube не может подключиться к базе данных PostgreSQL

Я пытаюсь установить Roundcube на сервер CentOS 5.5 с базой данных PostgreSQL 8.1.22.

Первая страница скрипта установщика, проверяющая наличие библиотек php и т. п., дает мне зеленые OK по всем направлениям. Я даже отклонился от своего пути, чтобы установить необязательные.

Вторая страница генерирует два файла конфигурации (main.inc.php и db.inc.php), которые я размещаю на месте.

На третьей странице все идет не так:

Проверьте конфигурацию базы данных DSN (запись): НЕ В ПОРЯДКЕ (Ошибка MDB2: подключение не удалось)

Убедитесь, что настроенная база данных существует и что у пользователя есть права на запись.

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

Информация, которую вы там видите (пользователь roundcube, пароль password, сервер localhost и база данных roundcubemail) верна. База данных roundcubemail принадлежит пользователю roundcube и имеет права на запись.

Я понятия не имею, почему он не может подключиться к этой базе данных. Я управляю ею с помощью phpPgAdmin, который запущен на том же 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 для подключения к localhost и 127.0.0.1 на порту 5432 работает нормально.

решение1

Ответ DerfK выше неверен. Вы можете использовать PostgreSQL с помощью сокета Unix с roundcube, если вы правильно его настроите. В db.inc.php должно быть написано:

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

При условии, что вы создали пользователя "roundcube" в pgsql для базы данных "roundcube" с паролем "пароль"В вашем основном 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).

Связанный контент