Pular para o conteúdo principal

Erro Interno do Servidor 500: o que causa e como corrigir

· Leitura de 5 minutos
Customer Care Engineer

como-corrigir-erro-interno-do-servidor-500-solucao-de-problemas-de-sites

Um Erro Interno do Servidor 500 é um dos problemas mais comuns que proprietários e administradores de sites encontram. Ele sinaliza que algo deu errado no servidor — mas não oferece diagnósticos precisos. Este artigo explica o que normalmente desencadeia um erro 500 e como você pode resolvê-lo.


Causas possíveis de um erro 500

Um erro 500 pode surgir por muitos motivos. Os mais frequentes são:

  1. Problemas de recursos do lado do servidor

Frequentemente, o erro 500 pode ser causado por problemas técnicos no servidor, como falta de recursos (RAM, tempo de CPU).

  1. Erros no código do site

Scripts ou código do site podem conter erros que causam uma falha. Isso pode ser devido a requisições incorretas, erros em arquivos de configuração ou problemas com a interação de componentes do site.

  1. Problemas com o arquivo .htaccess

O arquivo .htaccess é usado para configurar o servidor web e pode conter erros que resultarão em um erro 500. Por exemplo, regras de redirecionamento incorretas ou parâmetros incorretos podem causar uma falha.

  1. Atualizações recentes

Erros podem ocorrer após atualizações no site ou em aplicativos do servidor onde as alterações não foram tratadas corretamente.


Como corrigir um erro 500

  1. Verificar os logs do servidor web

Para determinar a causa de um erro 500, o primeiro passo é verificar os logs do servidor. Esses logs geralmente contêm informações sobre a falha — seja um erro de código, má configuração ou um problema no nível do servidor. No entanto, é importante entender que os logs do servidor web (como os do Nginx ou Apache) frequentemente registram apenas a ocorrência do erro e o código de resposta, não a causa raiz. Isso é especialmente verdade para o Nginx, que geralmente atua como um proxy e simplesmente encaminha o erro da aplicação backend.

Dependendo do servidor web em uso, os logs podem estar localizados nos seguintes diretórios:

Apache:

  • Ubuntu/Debian: /var/log/apache2/error.log

  • CentOS/AlmaLinux/Rocky Linux: /var/log/httpd/error.log

Nginx:

  • /var/log/nginx/error.log

Se o seu servidor for gerenciado por meio de um painel de controle como o FASTPANEL, a visualização de logs se torna ainda mais fácil. Para fazer isso:

  • Faça login no painel de controle.

  • Abra o cartão do site e localize a seção "Logs".

  • A aba "Frontend Error Log" contém erros do servidor web Nginx, enquanto a aba "Backend Error Log" contém erros do Apache.

Lembre-se de que muitos CMSs e frameworks (WordPress, Laravel, Joomla, etc.) mantêm seus próprios logs de erro. Esses logs geralmente fornecem informações mais precisas sobre a causa de um erro 500. Consulte a documentação da sua plataforma para encontrar onde esses logs são armazenados.

Os logs provavelmente lhe darão informações detalhadas sobre o que deu errado. Se o erro 500 for acionado por má configuração ou problemas de código, você pode ver os arquivos — ou até mesmo as linhas exatas — que causam a falha.

  1. Ativar o registro de erros do lado do PHP

Para obter diagnósticos mais detalhados, ative o registro diretamente no PHP — especialmente útil quando o erro se origina no código e não aparece nos logs do servidor web.

Para fazer isso, defina os seguintes valores no arquivo php.ini:

display_errors = Off

log_errors = On

error_log = /var/log/php_errors.log

Aqui:

  • display_errors — suprime a saída de erros no navegador

  • log_errors — grava erros em um arquivo de log

  • error_log — caminho para o arquivo de log (o PHP deve ter permissões de escrita)

Locais típicos do php.ini:

  • Debian/Ubuntu: /etc/php/*/apache2/php.ini ou /etc/php/*/cli/php.ini

  • CentOS/AlmaLinux: /etc/php.ini

Ou localize-o através de:

php -i | grep "php.ini"

No FASTPANEL: abra o cartão do site → “PHP Settings”, procure por variáveis como display_errors, altere seus valores e clique em “Salvar”.

  1. Verificar o arquivo .htaccess

Se o erro apareceu após a edição do .htaccess, reverta o arquivo para seu estado anterior.

Se você não tem certeza do que exatamente mudou, renomeie temporariamente o .htaccess (por exemplo, para .htaccess.bak) — se o erro desaparecer, então o problema está neste arquivo.

Neste caso, tente restaurar o arquivo .htaccess de um backup, se disponível, ou use o arquivo .htaccess padrão para o seu CMS, que você pode obter aqui.

  1. Verificar permissões e propriedade de arquivos

Permissões inadequadas podem desencadear um erro 500. Certifique-se de que a raiz do site e todos os arquivos subjacentes tenham direitos e proprietário corretos:

ls -laR /path/to/your/site/root

Permissões recomendadas:

  • Para diretórios: 755 — leitura, escrita e execução para o proprietário; leitura e execução para todos os outros.

  • Para arquivos: 644 — leitura e escrita para o proprietário; apenas leitura para todos os outros.

Propriedade:

Arquivos e pastas devem pertencer ao usuário do servidor web (por exemplo, www-data ou apache).

Se necessário, você pode ajustar permissões e propriedade usando os seguintes comandos:

  • Mude para o diretório raiz do seu site:
cd /path/to/root/directory/site
  • Defina a propriedade e as permissões corretas:
sudo chown -R yoursiteuser:yoursiteuser . && sudo chmod 644 . -R && sudo chmod +X . -R

Por favor, substitua yoursiteuser pelo usuário e grupo reais que possuem seu site.

  1. Desativar plugins e temas.

Para sites impulsionados por CMS como o WordPress, um erro 500 geralmente surge de conflitos de plugins ou temas. Desative todos os plugins e mude para um tema padrão para ver se isso resolve o problema.

  1. Certifique-se de que o servidor tem recursos livres suficientes para seus sites.
  • Verifique se você tem espaço livre em disco suficiente:
sudo df -h
  • Verifique se o servidor não ficou sem inodes:
sudo df -ih
  • Verifique se o servidor tem RAM suficiente:
sudo free -mh
  • Verifique a carga atual da CPU:
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
  • Alternativamente, abra o monitor de processos com o comando:
sudo top

Se você ficou sem espaço em disco ou inodes, você pode identificar quais arquivos e diretórios consomem mais espaço seguindo as instruções no artigo relevante.

Se a carga de RAM ou CPU estiver excessivamente alta, as causas podem variar. Comece sua investigação bloqueando bots de mecanismos de busca, pois eles são frequentemente a fonte de carga elevada.

  1. Verificar se o SGBD está íntegro.

Na maioria das vezes será o MySQL; abaixo estão várias etapas rápidas para verificar se seus bancos de dados estão OK.

  • Confirme que o serviço MySQL está em execução:
sudo systemctl status mysql
  • Verifique o log de erros do MySQL:
sudo grep -i error /var/log/mysql/error.log
  • Verifique todos os bancos de dados em busca de erros:
mysqlcheck -A -c

Se erros forem encontrados, primeiro tenha certeza absoluta de que você tem backups dos bancos de dados afetados. Se necessário, crie um dump com:

mysqldump -u [user] -p [database_name] > /path/to/file/dump.sql
  • Substitua [user] pelo nome de usuário do MySQL.

  • Substitua [database_name] pelo nome do banco de dados que você deseja exportar.

  • /path/to/dump.sql é o caminho onde o arquivo dump será salvo.

Após isso, execute o procedimento de correção de erros com mysqlcheck:

mysqlcheck -A --auto-repair -c
  1. Contatar seu provedor de hospedagem.

Se você não conseguir identificar o problema, pode valer a pena contatar o suporte do seu provedor de hospedagem. Ele pode ajudar a identificar problemas no servidor que não são visíveis no nível do usuário. Você pode aprender sobre como escolher o provedor de hospedagem certo neste artigo.


Conclusão

Erro 500 não é uma sentença para o seu site. Com a ajuda de ferramentas de diagnóstico básicas, você pode descobrir rapidamente a causa e corrigir o problema. Se você não estiver confiante em suas habilidades, sempre pode procurar especialistas. É importante lembrar que o erro 500 encontrado e corrigido a tempo o ajudará a evitar problemas mais sérios no futuro.