Ir para o conteúdo
PHP e frameworks

Erro 500 em aplicação PHP: onde está escrito o que aconteceu

O erro 500 é a página genérica que o servidor mostra quando o PHP não conseguiu terminar; a causa real está sempre em um arquivo de log, nunca na tela. Abra primeiro o log de erros do domínio no painel, depois o log da própria aplicação, e leia a última linha gravada no horário em que o erro apareceu.

Por que a tela não diz nada

Em produção, mostrar a mensagem de erro ao visitante entregaria caminho de arquivo, nome de banco e trecho de código para qualquer pessoa. Por isso o servidor troca tudo por uma página neutra. A informação não se perdeu — apenas foi para outro lugar.

Os logs que você deve abrir

  • Log de erros do domínio, no painel: registra o que o PHP e o servidor web reportaram, com data, hora, arquivo e linha.
  • Log da aplicação: frameworks gravam o próprio histórico, com a pilha de chamadas completa. É o mais útil quando o erro está no seu código.
  • Log de acesso: mostra qual endereço foi pedido no instante do erro. Serve para separar erro de página específica de erro do site inteiro.

Compare os horários. Um 500 que só acontece em uma página, sempre no mesmo endereço, é problema de código; um 500 que aparece em qualquer página, em rajada, costuma ser limite de recurso estourado.

Ligar a exibição de erros — e desligar depois

Quando o log estiver vazio e você precisar ver a mensagem, é possível ativar a exibição temporariamente, de preferência em um domínio de homologação. Reproduza o erro, copie a mensagem e desligue em seguida. Deixar ligado em produção é entregar detalhes do ambiente a quem estiver procurando por eles.

As causas mais comuns

Em ordem de frequência: erro de sintaxe em arquivo editado direto no servidor; permissão errada em arquivo ou pasta; memória esgotada em rotina pesada; extensão do PHP faltando depois de trocar a versão; e diretiva inválida no arquivo de regras — uma linha copiada de um tutorial escrito para outro servidor derruba o site inteiro. Se o erro começou logo após uma alteração, desfaça a alteração antes de investigar.

Quando o log está vazio

Log sem nenhuma linha nova no horário do erro sugere que a requisição nem chegou ao PHP: arquivo de regras inválido, arquivo de entrada ausente ou raiz do domínio apontando para a pasta errada. Renomeie temporariamente o arquivo de regras e recarregue: se o erro mudar, você encontrou o responsável.

Hospedagem gerenciada a partir de R$6,90/mês

Comece agora