DBALException no PrestaShop: o erro TLS/SSL que deita tudo abaixo
Uma mensagem «TLS/SSL error: invalid directory» e a loja inteira fica inacessível. A causa está no MariaDB 11.4, não no seu código. Duas correções, uma imediata.

Um site totalmente offline sem ter mexido em nada
O cenário é desconcertante: não implementou nada, não atualizou nada e a loja mostra uma página de erro completa, front e back-office incluídos. Nos registos, uma DBALException do PrestaShop do género:
An exception occurred while establishing a connection to figure out your platform version
SQLSTATE[HY000] [2026] TLS/SSL error: invalid directory
Esta mensagem não tem nada a ver com um bug da sua loja. Aparece quando o seu alojamento migra o servidor de bases de dados para o MariaDB 11.4 ou para uma versão mais recente.
O que se passa na realidade
Combinam-se dois mecanismos.
Primeiro mecanismo: o Doctrine consulta a versão do servidor. O PrestaShop 1.7 e o 8 usam o Doctrine DBAL. Ao abrir a ligação, o Doctrine executa uma consulta para determinar a versão do motor e adaptar a sua gramática SQL. É essa consulta preliminar que falha, daí a formulação «to figure out your platform version».
Segundo mecanismo: o MariaDB 11.4 aperta a verificação TLS. A partir desta versão, o cliente MariaDB verifica por predefinição o certificado do servidor. Num alojamento partilhado com CloudLinux e CageFS, cada conta está isolada num sistema de ficheiros virtual e a biblioteca cliente não encontra lá o repositório de certificados raiz do sistema. Devolve então invalid directory: não encontra a diretoria dos certificados.
O código 2026 na mensagem não é um ano: é o código de erro do cliente MariaDB para uma falha de handshake.
Correção 1: passar para os controladores nativos
É a correção mais rápida e não mexe no código.
No painel do seu alojamento, abra o seletor de versão de PHP e as extensões associadas. Substitua:
pdo_mysqlpornd_pdo_mysqlmysqlipornd_mysqli
As variantes «nd» (native driver) usam a implementação nativa do PHP em vez da biblioteca cliente do MariaDB e, por isso, não dependem do repositório de certificados do sistema.
A seguir, esvazie var/cache/prod/ e recarregue a página. Na esmagadora maioria dos casos, a loja volta de imediato.
Num alojamento sem seletor de PHP, peça a alteração ao suporte, citando a mensagem de erro exata: é um caso conhecido.
Correção 2: forçar a configuração do Doctrine
Se não tem acesso às extensões de PHP, atue do lado da aplicação, em app/config/doctrine.yml.
Declarar a versão do servidor evita a consulta de deteção que falha:
doctrine:
dbal:
server_version: '11.4'
Desativar a verificação do certificado, se a ligação continuar a ser recusada:
doctrine:
dbal:
options:
1007: false
A chave 1007 corresponde à constante MYSQLI_OPT_SSL_VERIFY_SERVER_CERT. Use-a apenas quando a base de dados está no mesmo servidor ou numa rede privada: está a desativar uma verificação de segurança real.
Depois de cada alteração, apague o conteúdo de var/cache/: o Symfony guarda em cache a configuração compilada e a sua alteração ficaria sem efeito.
Confirmar que o diagnóstico está certo
Antes de aplicar seja o que for, confirme a pista:
mysql --version
Uma versão 11.4 ou superior do lado do servidor confirma o cenário.
php -m | grep -i mysql
Este comando lista as extensões ativas e permite ver qual delas está carregada.
Por fim, teste uma ligação direta com as credenciais de app/config/parameters.php. Se a ligação pela linha de comandos funcionar e o PrestaShop falhar, o problema está mesmo na camada cliente do PHP e não nas credenciais.
Os erros a não cometer
Não reinstale o PrestaShop. O erro é do ambiente: uma reinstalação não muda nada e faz-lhe perder a configuração.
Não mude as credenciais de ligação. São válidas. A mensagem fala de TLS, não de autenticação recusada.
Não reponha uma cópia de segurança antiga. O seu código não mudou. Repor faria perder as encomendas recebidas entretanto, sem corrigir o que quer que fosse.
Não elimine a própria pasta var/cache, apenas o seu conteúdo, sob pena de gerar um segundo erro que baralha o diagnóstico.
Antecipar o próximo episódio
Este tipo de avaria, provocada por uma evolução da infraestrutura do lado do alojamento, multiplica-se à medida que os parques vão migrando. Dois hábitos limitam o impacto:
- Ler as notificações de manutenção do seu alojamento. As migrações de motor de base de dados são anunciadas, muitas vezes com semanas de antecedência, num e-mail que ninguém lê.
- Ter um ambiente de pré-produção no mesmo alojamento. Costuma ser migrado antes ou ao mesmo tempo e dá o alerta antes de a produção cair.
Para as outras avarias que deitam abaixo uma loja inteira, a nossa checklist do erro 500 cobre o método geral de diagnóstico.
Loja offline neste momento?
Diagnosticamos este tipo de avaria de ambiente em menos de uma hora e tratamos diretamente com o seu alojamento, se for preciso. Veja o suporte urgente PrestaShop.
Leia também
Vulnerabilidade ps_facetedsearch: a atualização PrestaShop que não pode adiar
Uma falha com pontuação 10 em 10 permite assumir o controlo de uma loja através de um simples URL. Veja como confirmar se a sua está exposta e se já foi visitada.
Ler 30 de julho de 2026PrestaShop pirateada: detetar e remover um skimmer bancário
Um skimmer rouba números de cartão durante semanas sem abrandar a loja. Os sinais a procurar, os comandos de diagnóstico e o procedimento de limpeza completo.
Ler 29 de julho de 2026Update Assistant bloqueado: reparar uma atualização do PrestaShop 9
Cache impossível de esvaziar, serviço Symfony inexistente, processo que para a meio: os erros reais do Update Assistant e o método para passar à linha de comandos.
Ler