Roundcube no puede conectarse a la base de datos PostgreSQL

Roundcube no puede conectarse a la base de datos PostgreSQL

Estoy intentando instalar Roundcube en un servidor CentOS 5.5, con una base de datos PostgreSQL 8.1.22.

La primera página del script del instalador, que verifica la presencia de bibliotecas php y demás, me da OK en verde en todos los ámbitos. Incluso hice todo lo posible para instalar los opcionales.

La página dos me genera dos archivos de configuración (main.inc.php y db.inc.php) que implementé.

La página tres es donde las cosas van mal:

Verifique el DSN de configuración de base de datos (escritura): NO ESTÁ BIEN (Error MDB2: falló la conexión)

Asegúrese de que la base de datos configurada exista y que el usuario tenga privilegios de escritura

DSN: pgsql://roundcube:contraseña@localhost/roundcubemail

La información que ve allí (usuario roundcube, contraseña, servidor localhost y base de datos roundcubemail) es correcta. La base de datos roundcubemail pertenece al usuario roundcube y tiene permisos de escritura.

No tengo idea de por qué no puede conectarse a esa base de datos. ¡Lo estoy administrando con phpPgAdmin, que se ejecuta en el mismo Apache, en el mismo servidor!

actualizar
algo más de información: mi archivo de registro de Postgres tiene varios de estos:
FATAL: no pg_hba.conf entry for host "127.0.0.1", user "roundcube", database "roundcubemail", SSL off
sin embargo, mi archivo pg_hba.conf tiene esto:
# "local" is for Unix domain socket connections only
local all all trust
host all all 127.0.0.1/32 trust

Usar telnet para conectarse tanto a localhost como a 127.0.0.1 en el puerto 5432 funciona bien.

Respuesta1

La respuesta anterior de DerfK es incorrecta. Puede usar PostgreSQL usando un socket Unix con roundcube siempre que lo esté configurando bien. En db.inc.php, debería leer:

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

Siempre que haya creado un usuario "roundcube" en pgsql para la base de datos "roundcube" con contraseña "contraseña" En su postgresql.conf principal, debe evitar la escucha en la capa IP cambiando:

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

Además, y esa es la parte más importante, debes cambiar en pg_hba.conf para agregar esta línea:

local   all         roundcube                        md5

Reinicie todo y funcionará perfectamente bien y más rápido que usar conexiones TCP (ya que evita toda la encapsulación de IP).

información relacionada