Roundcube no cPanel com SQLite: como saber qual banco o webmail usa, converter do MySQL para SQLite e reparar o banco quando o webmail não abre.
O Roundcube é o webmail do cPanel. Ele guarda contatos, identidades, assinaturas e preferências de cada caixa de e-mail em um banco de dados. Há anos o cPanel usa por padrão um pequeno banco SQLite por usuário, dentro da própria conta. Servidores antigos ainda podem estar com o modelo antigo, um banco MySQL único para todo o servidor, que o cPanel marcou como obsoleto na versão 120. Com SQLite, cada conta leva os dados do webmail junto no backup e na transferência, e um problema no banco de uma caixa não derruba o webmail das outras.
Antes de começar
- Acesso SSH como
rootao servidor. - Backup recente das contas e, se existir, do banco
roundcubedo MySQL.
Como saber se o Roundcube usa SQLite ou MySQL
mysql -e "SHOW DATABASES LIKE 'roundcube';"
find /home/usuario/etc -name '*.rcube.db'
Se o primeiro comando não retorna nada e o segundo lista arquivos .rcube.db, o servidor já usa SQLite. Os bancos ficam na pasta etc da conta, no formato /home/usuario/etc/seudominio.com.br/caixa.rcube.db, um por caixa de e-mail.
Como converter o Roundcube de MySQL para SQLite
- Faça o backup do banco atual.
mysqldump roundcube > /root/roundcube-$(date +%F).sql - Converta todo o servidor.
Para testar antes em uma única conta, informe o usuário no fim do comando:/usr/local/cpanel/scripts/convert_roundcube_mysql2sqlite/usr/local/cpanel/scripts/convert_roundcube_mysql2sqlite usuario - Teste o webmail. Entre em uma caixa pelo endereço
https://seudominio.com.br/webmaile confira se contatos e assinaturas continuam lá.
Como reparar o banco do Roundcube quando o webmail dá erro
- Reconstrua os bancos com o script do cPanel. Ele identifica sozinho se o servidor usa MySQL ou SQLite e atualiza a estrutura:
Em servidores com SQLite, o script equivalente específico é/usr/local/cpanel/bin/update-roundcube-db/usr/local/cpanel/bin/update-roundcube-sqlite-db. Os dois guardam cópias com data ao lado do arquivo original antes de mexer. - Confira dono e permissão do banco da caixa com problema. O arquivo precisa pertencer ao usuário da conta:
ls -l /home/usuario/etc/seudominio.com.br/*.rcube.db chown usuario:usuario /home/usuario/etc/seudominio.com.br/caixa.rcube.db - Último recurso: recrie o banco de uma caixa. Se só uma caixa falha e nada resolveu, renomeie o arquivo dela. No próximo login o Roundcube cria um banco novo e vazio. Os e-mails não são afetados (ficam no servidor de e-mail), mas contatos, assinaturas e preferências dessa caixa se perdem, a não ser que você os restaure da cópia.
mv /home/usuario/etc/seudominio.com.br/caixa.rcube.db /home/usuario/etc/seudominio.com.br/caixa.rcube.db.quebrado
Problemas comuns
DATABASE ERROR: CONNECTION FAILED ao abrir o webmail
O Roundcube não conseguiu abrir o banco. As causas mais comuns são a conta sem espaço em disco (cota estourada impede o SQLite de gravar), o arquivo .rcube.db com dono errado depois de uma restauração como root, ou banco corrompido. Libere espaço, corrija o dono e, se preciso, rode o update-roundcube-db.
Webmail funciona em uma caixa e não em outra da mesma conta
Com SQLite cada caixa tem o seu banco. Trate só o arquivo da caixa com problema, conforme o passo 3.
Contatos sumiram depois de migrar de servidor
A conta veio sem a pasta etc completa, ou o servidor antigo usava MySQL e o banco roundcube não foi levado. Converta no servidor de origem antes de transferir, ou importe os contatos pelo próprio Roundcube.