Estou tentando instalar o Roundcube em um servidor CentOS 5.5, com banco de dados PostgreSQL 8.1.22.
A primeira página do script do instalador, que verifica a presença de bibliotecas php e outras, me dá OKs verdes em todos os aspectos. Até me esforcei para instalar os opcionais.
A página dois me gera dois arquivos de configuração (main.inc.php e db.inc.php) que eu coloquei em prática.
A página três é onde as coisas dão errado:
Verifique o DSN de configuração do banco de dados (gravação): NÃO OK (erro MDB2: falha na conexão)
Certifique-se de que o banco de dados configurado exista e que o usuário tenha privilégios de gravação
DSN: pgsql://roundcube:password@localhost/roundcubemail
As informações que você vê lá (usuário roundcube, senha, servidor localhost e banco de dados roundcubemail) estão todas corretas. O banco de dados roundcubemail pertence ao usuário roundcube e possui permissões de gravação.
Não tenho ideia de por que ele não consegue se conectar a esse banco de dados. Estou gerenciando com o phpPgAdmin, que está rodando no mesmo Apache, no mesmo servidor!
atualizar
mais algumas informações: meu arquivo de log postgres tem vários destes:
FATAL: no pg_hba.conf entry for host "127.0.0.1", user "roundcube", database "roundcubemail", SSL off
no entanto, meu arquivo pg_hba.conf tem isto:
# "local" is for Unix domain socket connections only
local all all trust
host all all 127.0.0.1/32 trust
Usar o telnet para conectar-se ao host local e ao 127.0.0.1 na porta 5432 funciona bem.
Responder1
A resposta do DerfK acima está errada. Você pode usar o PostgreSQL usando o soquete Unix com roundcube, desde que esteja bem configurado. No db.inc.php, deve ler-se:
$rcmail_config['db_dsnw'] = 'pgsql://roundcube:*password*@unix(/tmp)/roundcube';
Desde que você tenha criado um usuário “roundcube” no pgsql para o banco de dados “roundcube” com senha “senha"Em seu postgresql.conf principal, você deve evitar a escuta na camada IP, alterando:
listen_addresses = ''
unix_socket_directory = '/tmp'
ssl = false # There's no point in using SSL on a local UNIX socket except wasting CPU
Além disso, e essa é a parte mais importante, você deve alterar pg_hba.conf para adicionar esta linha:
local all roundcube md5
Reinicie tudo e está funcionando perfeitamente e mais rápido do que usar conexões TCP (já que você evita todo o encapsulamento IP).