A maioria de nós, desenvolvedores, designers ou até mesmo usuários finais, tivemos que suportar pelo menos um em nossa vida. Ou seja, o doloroso processo de obter um erro interno do servidor e tentar corrigi-lo. Muitas pessoas não se importam em saber mais – elas só querem consertar. Mas se você não tentar pelo menos entendê-lo, você está fadado a sofrer esse destino com mais frequência. O erro do servidor interno 500 é muito importante, pois interrompe completamente todos os processos e pode derrubar todo o site. Então, se quisermos nos livrar dele, precisamos entender melhor o que isso significa primeiro.
Neste artigo, abordarei o básico do que esse erro significa, como você pode identificar o problema e, claro, como corrigi-lo. Mas antes de começar, quero orientá-lo sobre os vários erros de http (site) que existem e o que eles podem significar. Se preferir, você pode pular para como corrigir o erro do WordPress 500 .
Status HTTP comum e códigos de erro
Primeiras coisas primeiro – vou explicar o que esses erros realmente significam. Atualmente, há uma lista de status e erros para HTTP que podem ser acessados
Resposta 100x (Status)
Este tipo de resposta é dado diretamente pelo servidor web. Dependendo da sua empresa de hospedagem, a resposta pode ser dada pelo Apache, nginx ou qualquer outro servidor web que a empresa use. Este tipo de resposta não está associado a erros. Eles geralmente são usados
Resposta 200x (Sucesso)
Os bem sucedidos é como eu os chamo. Este tipo de resposta sempre indica um sucesso. Isso significa que o servidor fez a conexão com você com sucesso, que os recursos solicitados foram fornecidos corretamente ou que uma conexão de proxy foi feita.
O código de sucesso mais comum é conhecido como 200 OK. Você pode ver exemplos disso se estiver usando uma ferramenta de teste de velocidade do WordPress , digamos no Pingdom Tools e estiver tentando descobrir o FTTB (First time to byte). A resposta 200 OK é sempre dada ao primeiro pedido feito.
Resposta 300x (redirecionamentos)
Os caras do redirecionamento. Esses códigos são sempre referidos se o link fornecido for redirecionado. 300 códigos de status indicam um redirecionamento bem-sucedido e também não são considerados um erro.
Digamos que você tenha um site SSL (HTTPS) e também tenha acesso direto ao HTTP (não seguro) e queira redirecionar todos para a versão HTTPS do seu site. Você pode criar um redirecionamento para todas as solicitações provenientes de HTTP para irem para HTTPS. Se você acidentalmente tentar entrar em seu site por HTTP, seu navegador receberá uma resposta 300 indicando um redirecionamento para a versão HTTPS.
Outro exemplo comum com o qual você pode estar familiarizado são os redirecionamentos no site para SEO. Talvez você tenha removido postagens ou páginas antigas. Com a ajuda de um plugin como o Yoast SEO , você pode redirecioná-los 301 para páginas mais recentes e mais relevantes. Ou use um redirecionamento temporário 307 se estiver trabalhando em uma atualização e quiser direcionar os usuários para uma página diferente um pouco.
Resposta 400x (erros do cliente)
Os famosos erros do cliente. Esses tipos de erros envolvem problemas no seu navegador. Normalmente, ele não consegue carregar um determinado ativo (o mais conhecido é o erro 404). Estes são códigos de erro que não são considerados graves.
O mesmo erro pode ser exibido se você tentar acessar uma imagem inexistente em seu site. Por exemplo, você pode usar um redirecionamento 410 para informar aos mecanismos de pesquisa que o conteúdo foi removido permanentemente ou um redirecionamento 451 se você tornou uma página indisponível por motivos legais (como uma solicitação de DMCA).
Resposta 500x (erros do servidor)
E agora chegamos ao nosso principal protagonista. Os 500 erros. Como você pode ver, esses são erros importantes e estão sempre relacionados ao próprio servidor. Erros de servidor são importantes porque podem efetivamente travar seu site. Desses erros, os mais importantes são:
- Um serviço 503 indisponível
- Um erro de gateway incorreto 502
- Um erro de servidor interno 500
Vamos explorar os 3 deles por ordem de importância.
503 serviço indisponível
O menos grave é o serviço 503 indisponível. Se este erro aparecer, você tem um problema de recurso no servidor web. Quase o tempo todo ele aparece quando seu servidor está sobrecarregado. Em termos simples, se você vir esse erro, saiba que é temporário e está diretamente relacionado a muito tráfego e isso está sobrecarregando a CPU. Sempre que a CPU e o próprio servidor da Web não puderem processar mais conexões de entrada porque atingiram 100% de utilização da CPU, você verá este erro pop-up.
Você pode corrigir isso mudando para um servidor web melhor (de Apache para Nginx, por exemplo) ou implementando um plugin de cache do WordPress em seu site.
502 Bad Gateway
Isso é o que eu chamei de erro de configuração incorreta. Este erro não aparece sem motivo. Se você já teve esse erro, a causa mais provável é que você fez algo e fez errado. Isso geralmente acontece quando as pessoas tentam ajustar a configuração do Apache e do PHP ou quando tentam otimizar o nginx. O gateway ruim é um erro que quase sempre acontece quando o PHP FPM (Fast Process Manager) perde a conexão. Ou de ajustar as configurações erradas ou porque o processo travou. Isso leva o servidor web a responder com um gateway ruim.
A maneira mais fácil de corrigir esse erro é verificar novamente sua configuração do PHP-FPM, pois essa é a causa mais provável para esse erro. Isso acontece com mais frequência no lado do Nginx do que no Apache e quase nunca acontece nos serviços de hospedagem fornecidos pelo cPanel ou Plesk. Esses dois últimos painéis têm proteções para evitar erros de configuração incorreta. Mas isso acontece com muita frequência ao gerenciar seu próprio VPS.
Procurando mais ajuda com este? Siga nosso guia sobre como corrigir um erro de gateway incorreto 502 .
500 Erro interno do servidor
O grande bad boy dos erros. O erro do servidor interno 500 é o pior de todos, principalmente porque é um erro tão geral. Se você não tiver conhecimento suficiente sobre como lidar com isso, pode ser uma verdadeira dor, pois pode derrubar todo o site. O erro 502 bad gateway também derruba seu site, mas é mais fácil de diagnosticar e corrigir. Como mencionado, quase sempre está relacionado à configuração do FPM.
Razões para um erro de servidor interno 500 e como corrigi-los
A primeira coisa a entender sobre um erro 500 é que ele pode ser causado por vários fatores diferentes que quase sempre estão relacionados a falhas na execução do código. Ao invés de tentar diagnosticar tudo de uma vez, vou te dar uma lista de erros por tipo de problema e o que você estava fazendo.
- Ao migrar um site antigo para uma hospedagem mais recente
- Um erro no .htaccess em uma configuração do apache
- Um erro na execução do código PHP
Existem outros casos menos comuns que podem gerar um erro de servidor interno 500, mas por uma questão de simplicidade e usabilidade deste artigo, vou me concentrar nesses três.
1. Migrando um site antigo para uma hospedagem mais recente
Existem várias maneiras pelas quais esse erro pode aparecer, mas quase sempre parece relacionado à versão do PHP vinculada ao seu servidor web. As versões mais recentes do PHP podem gerar um erro de servidor interno imediato de 500 se o site ou plugins atuais não suportarem a versão atual.
Este erro é clássico, por exemplo, quando você migra seu site de uma hospedagem medíocre com uma versão PHP mais antiga para uma hospedagem mais recente que aceita apenas as versões mais recentes (7.0 e superior). Se seu site não foi atualizado recentemente, um plug-in antigo pode estar causando um problema. Eu chamo isso de “erro interno do servidor de migração” porque quase sempre acontece quando você migra um site.
Solução
A melhor maneira de corrigir esse erro terrível quando você está tentando tanto migrar seu site WordPress para uma nova hospedagem é fazer uma cópia completa de seus plugins e do tema do seu site. Depois de fazer isso, exclua todos os plugins do seu site e tente novamente. Se o erro desaparecer, é quase garantido que o erro foi gerado por uma versão mais recente do PHP em sua hospedagem que simplesmente se recusa a executar código em seu plugin mais antigo. Ao reenviar um plug-in de cada vez, você pode descobrir facilmente qual foi o que está causando o problema.
Esses erros quase sempre aparecem ao migrar sites mais antigos rodando em PHP 5.4 e 5.6 para uma hospedagem mais recente com PHP 7.0, 7.1 ou 7.2.
A mesma coisa se aplica ao seu tema. Uma vez que os temas podem implementar código PHP extra nos arquivos functions.php, single e page.php . É muito provável que um tema mais antigo sem atualizações possa quebrar seu site uma vez migrado para uma hospedagem com uma versão mais recente do PHP, essa situação é lamentável, pois a única maneira de corrigir isso é alterar o tema e reconstruir seu site. Este é o pior cenário.
2. .htaccess Erro de configuração do Apache
Digamos que você estava configurando um plugin e de repente tudo trava. Se você receber um erro de servidor interno 500 durante a configuração, por exemplo, um plug-in de cache ou qualquer plug-in relacionado a otimizações, você precisa verificar se o plug-in adicionou código extra ao seu arquivo .htaccess.
Como o apache pode ser modificado em tempo real configurando as funções no arquivo .htaccess (que quase sempre está oculto), uma configuração incorreta pode quebrar seu site.
Solução
A maneira de corrigi-lo é acessando seu site através de FTP e modificando seu arquivo .htaccess ou editando diretamente, digamos com o explorador de arquivos no cPanel ou Plesk.
Se você não sabe como reverter o que o plugin fez e precisa do seu site novamente, faça uma cópia do conteúdo existente como arquivo de texto. Salve isso como seu backup. Em seguida, substitua todo o .htaccess pelo seguinte código:
# COMECE WordPress
<IfModule mod_rewrite.c>
Rewrite Engine On
RewriteBase /
Regra de reescrita ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}!-d
Regra de Reescrita. /index.php [L]
</IfModule>
# FIM WordPress
Este é o arquivo .htaccess padrão do WordPress . Deve funcionar com qualquer site. Então, se você está desesperado e não sabe qual parte remover, basta remover tudo e colar este código. Ele vai te salvar instantaneamente. Mais tarde, você pode remover o plug-in ou tentar configurá-lo novamente. Agora você conhece uma maneira de salvá-lo desse erro catastrófico. Pelo menos se for relacionado a .htaccess.
Se você não sabe se está relacionado a .htaccess, ou se este erro começou a aparecer sem você tocar em nenhum plugin, jogue pelo seguro. Basta copiar o conteúdo do seu .htaccess e copiar o código acima para tentar diagnosticar. Se isso não resolver, deixe o .htaccess como está e tente a próxima sugestão.
3. Erro de execução de código PHP
Esses tipos de erros são mais comuns do que você pensa e geralmente acontecem se um plug-in estiver executando um código inválido. A maneira mais comum de executar código inválido é quando você tenta executar instruções obsoletas. Talvez você esteja tentando executar um plugin antigo que foi projetado apenas para funcionar com PHP 5.4 ou 5.6 com PHP 7.0 ou versões mais recentes. Funções obsoletas e inválidas criarão um erro interno do servidor que só pode ser diagnosticado ativando o modo WP Debug.
Ativar wp_debug
O modo de depuração do WordPress fornecerá detalhes abrangentes sobre o erro que foi lançado e interrompeu a execução. A forma como habilitamos é alterando o valor de “false” para “true” em wp_debug dentro do arquivo wp-config.php na pasta raiz do seu site.
Se você estiver usando Plesk ou cPanel, você pode fazer isso simplesmente alterando esse valor usando o File Explorer e editando wp-config.php . Você também pode seguir este guia de depuração do Blogvault para obter etapas mais detalhadas.
Depois que o arquivo for editado, você poderá ver o erro real gerado que interrompeu a execução. O erro também indicará o caminho e o arquivo onde isso aconteceu, então é fácil adivinhar qual plug -in o causou. Ao desativá-lo , podemos pular o erro e depois atualizar o plugin ou removê-lo, dependendo da situação.
Solução
A grande maioria das instâncias de um erro de servidor interno 500 envolve versões ou plugins de temas mais antigos . Ao mudar seu tema para qualquer tema padrão do WP, você poderá recuperar o acesso ao seu site. Desabilitar os plugins conflitantes também retornará seu acesso ao painel. Se você encontrar uma situação em que seu tema é o responsável por quebrar o site, a melhor maneira de corrigi-lo é criando um arquivo zip do referido tema na pasta de temas wp-content/themes/yourtheme e excluí-lo de seu site. Isso removerá o erro para que você possa recuperar o acesso ao seu site. Você pode então recarregá-lo e atualizá-lo sem ativá-lo. Você pode fazer a mesma coisa com plugins.
As situações mais comuns para erros de 500 servidores internos podem ser corrigidas com a atualização. Nos casos em que o referido plugin/tema não possui uma atualização disponível, você pode tentar mudar para uma versão mais antiga do PHP. Mas saiba que esta é uma solução de curta duração. As versões mais recentes do PHP se tornam estáveis
Lembre-se sempre, é melhor prevenir e atualizar do que tentar fazer o controle de danos mais tarde.
Resumindo nosso guia para erros de servidor interno do WordPress 500
Um erro de servidor interno do WordPress 500 pode ser uma verdadeira dor. Mas, na maioria dos casos, eles podem ser facilmente diagnosticados e corrigidos simplesmente removendo/atualizando as partes conflitantes do seu site. Embora possa haver situações em que esses erros se apresentem fora da norma (por exemplo, quando você está desenvolvendo um plugin), isso vai além do objetivo deste artigo.
Para a grande maioria das pessoas, seguir os conselhos acima deve resolver seu problema. Lembre-se que wp-debug é seu melhor amigo e sempre siga os passos com cuidado. Você terá seu site novamente on-line em pouco tempo.
Tem outras perguntas? Ou dicas para lidar com um erro de servidor interno do WordPress 500? Avise!