Você tenta abrir o próprio site e, em vez da página inicial, aparece uma tela em branco com a frase “500 Internal Server Error”. Não há explicação, não há detalhe técnico, nada que oriente o próximo passo. Para o visitante, parece que o site simplesmente sumiu; para quem administra, geralmente significa que o painel também está fora do ar, justamente a ferramenta que seria usada para investigar o problema.
A frustração é proposital: o erro 500 Internal Server Error é deliberadamente vago. É a forma de o servidor dizer “algo quebrou enquanto eu processava sua solicitação, e eu não vou detalhar o quê”. A informação precisa existe, mas fica registrada no log de erros, não na tela exibida aos visitantes.
A seguir, explicamos o que de fato é esse erro, quais são suas causas mais comuns, como conduzir a correção numa ordem lógica e, principalmente, como identificar quando o 500 é sintoma de uma invasão no site, e não apenas uma falha de configuração.
O que é um erro 500 internal server error?
Trata-se de um código de status HTTP que o servidor retorna quando encontra uma condição inesperada que o impede de concluir a solicitação. Essa é toda a definição, e ela é propositalmente ampla. A família 5xx indica que o problema está do lado do servidor; o 500, especificamente, significa que o servidor não conseguiu classificar a falha de forma mais precisa.
Para comparação, outros códigos da mesma família dão pistas mais claras: o 502 indica que um servidor recebeu uma resposta inválida de outro servidor acima na cadeia; o 503 aponta que o serviço está indisponível ou sobrecarregado; e o 504 sinaliza que algo expirou no meio do caminho. Já o 500 não oferece essa direção — é o “coringa” dos erros de servidor.
Também vale entender o que o erro 500 não é. Não se trata de um problema do navegador, nem de DNS, nem de rede. A solicitação chegou ao servidor, que tentou respondê-la. Porém, algo no meio desse processo — seja o PHP, uma diretiva de configuração, uma permissão de arquivo ou uma chamada ao banco de dados — falhou de forma severa o suficiente para que nenhuma resposta útil pudesse ser enviada de volta.
Como o erro aparece na prática?
A mensagem exibida varia conforme o servidor web, a hospedagem e se a aplicação conseguiu renderizar algo antes de falhar completamente. Entre as variações mais comuns estão:
- 500 Internal Server Error
- HTTP Error 500
- HTTP 500 – Internal Server Error
- “Internal Server Error. The server encountered an internal error or misconfiguration and was unable to complete your request”
- Uma página completamente branca
- “There has been a critical error on this website”, mensagem típica do WordPress
Esse último caso merece atenção: o WordPress às vezes consegue capturar um erro fatal do PHP e exibe sua própria mensagem em vez de deixar o código 500 bruto aparecer. Isso é mais amigável, mas acaba escondendo o status real do erro. Já uma página em branco, sem nenhum texto, também costuma indicar um 500 — o servidor retorna o código de status, mas sem corpo de conteúdo. Por isso, o recomendado é verificar o status na aba de rede das ferramentas de desenvolvedor do navegador ou por meio de uma requisição via linha de comando, para confirmar exatamente o que está acontecendo.
Quais são as causas mais comuns do erro 500?
Praticamente todo erro 500 internal server error se origina de um punhado de causas recorrentes, listadas a seguir na ordem em que costumam causar problemas em sites reais.
Plugin, extensão ou tema com falha. Uma atualização de plugin pode introduzir código incompatível com a versão do PHP instalada, dois plugins podem definir a mesma função, ou um arquivo de tema pode chamar algo que não existe mais. O PHP gera então um erro fatal, e sem nada para capturá-lo, o resultado é um 500.
Arquivo .htaccess corrompido ou conflitante. No Apache, o .htaccess controla redirecionamentos, reescritas de URL e diversas configurações por diretório. Uma diretiva inválida, um erro de digitação ou uma regra copiada de outro servidor já é suficiente para derrubar todas as URLs daquele diretório.
Esgotamento de memória do PHP ou incompatibilidade de versão. Um script que exige mais memória do que o limite permitido falha no meio da execução. O mesmo ocorre com código escrito para uma versão de PHP diferente da que está em uso — situação comum após uma atualização de PHP feita pela própria hospedagem.
Permissões incorretas de arquivos ou diretórios. Se o servidor não consegue ler um arquivo necessário, ou se um arquivo ou pasta está com permissões que o servidor se recusa a executar, a solicitação falha. Em hospedagens com configurações mais rígidas de segurança, permissões excessivamente abertas também podem provocar o mesmo resultado, o que costuma surpreender os administradores.
Script ou dependência externa com falha. Uma tarefa agendada (cron job), uma integração personalizada ou uma chamada de API que trava ou retorna dados inválidos pode gerar um erro não tratado. Falhas de conexão com o banco de dados também costumam se manifestar como um erro 500.
Comprometimento malicioso do site. Código PHP injetado e regras alteradas no .htaccess estão entre os vestígios mais comuns deixados por invasores, e ambos podem derrubar um site por completo. Esse cenário exige um caminho de investigação diferente, como será detalhado adiante.
O erro é culpa do site ou do navegador?
A responsabilidade é do site. Como o erro 500 é gerado pelo servidor, a correção precisa acontecer no servidor ou no código e nas configurações do site. Nenhuma limpeza de cache do navegador resolve um erro 500 genuíno.
Ainda assim, vale descartar duas hipóteses rápidas antes de iniciar uma investigação mais profunda. Primeiro, recarregue a página uma vez: se o erro foi momentâneo — como um pico breve de consumo de recursos ou uma dependência que se recuperou sozinha —, ele não deve se repetir. Segundo, teste o acesso a partir de outra rede, outro dispositivo ou um serviço externo de verificação de status. Se a falha ocorrer para todos, o problema está no servidor. Se ocorrer apenas para você, pode se tratar de uma resposta de erro armazenada em cache ou de um registro desatualizado numa camada de CDN ou proxy — nesse caso, limpar esse cache costuma resolver.
Como corrigir o erro 500 internal server error, passo a passo
O ideal é seguir estas etapas na ordem indicada, já que a sequência foi pensada para primeiro revelar a causa real e, em seguida, percorrer as falhas mais frequentes.
- Leia o log de erros do servidor — esta é a etapa mais valiosa, e também a mais frequentemente ignorada. O log costuma indicar o arquivo e a linha exata onde ocorreu a falha. Ele pode ser encontrado no painel de hospedagem, geralmente identificado como “Error Log” ou “Logs”, ou no caminho documentado pela hospedagem para os logs de erro do Apache, Nginx ou PHP-FPM.
- Ative o registro de depuração no nível da aplicação — se o log do servidor não for suficiente, habilite o sistema de registro de erros da própria plataforma, para que avisos e erros fatais do PHP sejam gravados em arquivo em vez de simplesmente descartados. No WordPress, isso é feito ajustando as constantes de debug no arquivo wp-config.php. O ideal é registrar os erros em arquivo e nunca exibi-los diretamente na tela em um site no ar, já que essa exposição pode revelar caminhos internos e outras informações sensíveis.
- Descarte o .htaccess como causa — renomeie o arquivo .htaccess para .htaccess_old e recarregue o site. Se o erro desaparecer, o arquivo era o problema. No WordPress, basta salvar novamente as configurações de links permanentes para gerar um arquivo limpo. Em outras plataformas, recomenda-se reinserir as diretivas aos poucos, até que o erro volte a aparecer, identificando assim exatamente qual regra causava o conflito.
Quando o erro 500 pode indicar um site invadido?
Entre as causas de um erro 500 internal server error, a invasão do site costuma ser a mais negligenciada nos guias de solução de problemas. Isso acontece porque sintomas como código PHP injetado ou regras alteradas no .htaccess produzem o mesmo tipo de falha genérica que uma simples atualização de plugin mal feita. Por isso, quando o erro surge de forma repentina, sem relação aparente com nenhuma mudança recente feita pela equipe responsável pelo site, vale reforçar a investigação também sob a ótica da segurança, além da checagem puramente técnica de configuração.
Em resumo, resolver um erro 500 internal server error exige método: primeiro identificar a causa real por meio dos logs, depois descartar as hipóteses mais comuns na ordem certa e, por fim, manter a atenção para o cenário em que a falha não é apenas um problema de configuração, mas um indício de comprometimento do site. Essa abordagem organizada evita retrabalho e reduz o tempo em que o site permanece fora do ar.
Com informações de blog.sucuri.net.