O que é o erro 500 e porque ele ocorre?


Prefere escutar essa matéria? Clique no player acima 😉

O Erro 500 (Internal Server Error), é um tipo de status http que o webservice (Apache/Nginx ou IIS) retorna quando ele não consegue especificar o erro real que ocorre internamente durante o acesso ao site.

Quem desenvolve e mantém aplicativos e sites, geralmente, já conhece bem o erro 500 e prefere ao máximo ficar bem longe dele. O motivo é que, apesar de, em geral, o erro 500 ser fácil de consertar, ele não costuma ter uma causa fácil de ser apurada. Essa especificidade torna a identificação da solução algo complicado de executar. A melhor maneira de identificar o problema raiz do erro 500 depende de características do servidor e também do modo em que a aplicação foi concebida. Considere algumas dicas de debugging que podem ajudar a diagnosticar e corrigir as causas comuns desse problema.

Dentre as principais causas do erro 500, podemos destacar as seguintes situações e indicações a serem verificadas em um primeiro momento:

Erros de programação

É indicado ativar o debug da aplicação/php para analisar o log de erro e filtrar se pode estar sendo gerado algum alerta responsável pela ocorrência do erro.

Exemplo: erro por falta de memória RAM (Fatal error: Allowed memory size)

Estouros dos processos PHP / recursos disponíveis ao domínio

Isso pode ocorrer de acordo com a quantidade de recurso ou até mesmo a quantidade de processos PHP que o site tenha disponível para o uso.

O consumo dos recursos PHP pode ser verificado na ferramenta de ‘Performance’ no Painel de Controle, e também podem ser verificados os scripts que estejam apresentando lentidão no acesso em “Configuração PHP” também no Painel de Controle.

Configurações no arquivo htaccess:

Caso o domínio esteja utilizando um arquivo “.htaccess”, ele pode estar com alguma configuração e/ou comando incorreto (No ambiente windows, o arquivo em questão é o web.config).

Debugando plataformas populares

Sua aplicação estão rodando através de um CMS, como o WordPress, Joomla ou Drupal? Se positivo, é provável que, por serem plataformas testadas e com várias versões de melhoria, elas não causem o erro 500. No entanto, dependendo do caso, quando a instalação está incorreta, por exemplo, esse tipo de erro acaba sendo comum e persistente. Estes são alguns dos problemas comuns que podem causar erro 500 em plataformas populares:

  • Se o software for atualizado para uma nova versão e você se depara com o erro 500, é provável que a atualização tenha falhado e precise ser atualizada. Talvez você possa encontrar instruções sobre isso no site do fornecedor. Se o software acabou de ser instalado, algo pode ter falhado no processo de instalação.
  • Se o erro acontecer após um plugin novo ser ativado, é uma boa ideia desfazer a mudança (rollback) e tentar a instalação novamente. Até mesmo plugins consagrados e testados podem apresentar conflito com outros plugins do seu site.
  • Se a instalação core do software foi atualizada, plugins e temas mais antigos podem se tornar incompatíveis com esta atualização. Quando acontece esse problema, a única solução é desativar esses softwares mais antigos até o problema se resolver. Por si só, desativá-los não irá resolver o seu problema, porém após identificar o que está causando o erro, é possível entrar em contato com o desenvolvedor responsável e, talvez, conseguir uma correção.

Dentre as principais causas para as incidências do erro 500 que identificamos diariamente em nosso suporte, destaco algumas e o tratamento para cada caso:

Quantidade de recurso necessária para a aplicação de maneira desproporcional a necessidade real do site:

Tenha sempre em mente, que os requisitos mínimos que uma aplicação possui, podem aumentar de maneira exponencial de acordo com os componentes que ela possua. Um bom exemplo disto é o Magento que em sua versão 1.9 possuía a necessidade mínima de 256Mb de memória RAM, enquanto seu sucessor na versão 2.0 passou a necessitar de 2Gb de memória RAM.
É extremamente importante ler a documentação de sua aplicação e ter ciência desses detalhes, pois podem ser cruciais para seu site ter a melhor performance e desempenho.

Dimensionamento dos processo PHP inadequados à memória RAM disponível:

Ainda no exemplo do Magento 1.9, podem existir incidências do erro 500 caso os processos PHP não sejam o bastante para o domínio. Sendo a memória RAM proporcional aos processos PHP, o indicado inicialmente para uma instalação pura do Magento 1.9 seriam 4 Processos PHP de 256Mb cada um (de modo que o total de memória ram indicada seria de 1Gb). Enquanto o Magento 2, teria uma necessidade muito superior a esta, com base em seus requisitos mínimos, a qual já seria no mínimo de 8Gb de ram e 4 Processos PHP.
Vale destacar que de acordo com a aplicação estas configurações podem sofrer valores diferenciados ou até mesmo inferiores se a aplicação estiver devidamente otimizada.

Excesso de requisições por página:

Como o erro 500 pode ocorrer devido o esgotamento dos processos PHP, o excesso de requisições em uma página pode ocasionar o erro da mesma forma. Sendo indicado a página principal do site possuir o mínimo necessário de informações para que seu carregamento seja ágil e breve ao PHP.
Seja uma loja virtual ou portal de notícias, o excesso de informações acumuladas pode prejudicar a estabilidade do site em si.

Instalação de plugin/componente:

Por vezes a instalação de algum plugin pode necessitar inserir regras no arquivo .htaccess, que caso tenha alguma outra diretiva em conflito poderá ocasionar o erro 500. É indicado efetuar um backup prévio antes de qualquer instalação ou atualização importante, para evitar ocorrências do erro 500.’

Acompanhe o consumo em tempo real e o histórico por meio da ferramenta ‘Performance’

Nossa estrutura dispõe no painel de controle de uma ferramenta que pode auxiliar nesses casos: o ‘Performance’, por meio dele é possível acompanhar o consumo dos processos e as requisições do site em tempo real, assim como o histórico de consumo de memória RAM e CPU de cada site.

Confira nossa wiki e conheça outras dicas técnicas para o seu site!

Luis Trindade

Luis Trindade

Estudante de Análise e Desenvolvimento de sistemas. Atualmente trabalha como Analista de Operações de Hosting na Kinghost.
Luis Trindade

Últimos posts por Luis Trindade (exibir todos)

Comentários

comentário(s)