Como corrigir o Erro 500 – Internal Server Error – no Apache

image_pdfimage_print

Quando nos deparamos com o Erro 500 – Internal Server Error – ao acessar um site, significa que temos um problema no servidor web (no caso, o Apache). O erro 500 indica uma falha interna no servidor que pode ser causado por um erro de programação em algum sistema do seu site, ou ainda por permissões incorretas em arquivos e pastas, ou talvez também pela falta de algum módulo no seu Apache, além de outros possíveis motivos.

Para verificar o que pode estar acontecendo, é necessário verificar o arquivo de log de erro do seu site. No Apache do Linux Debian, este arquivo geralmente fica localizado o diretório /var/log/apache2. Caso você não saiba qual é o arquivo de log de erro do seu site, verifique no arquivo de configuração do site, localizado em /etc/apache2/sites-available (geralmente o nome do arquivo é a url do site). Abra este arquivo e procure pela linha

ErrorLog ${APACHE_LOG_DIR}/nomedosite_error.log

No caso acima, o arquivo de log de erro está localizado no diretórios de log do Apache (APACHE_LOG_DIR, que por padrão é /var/log/apache2) e o nome dele é nomedosite_error.log.

Agora que você já sabe qual é e onde está o arquivo de log de erro do seu site, abra-o e tente verificar nas mensagens uma possível razão para o erro que está acontecendo. Abaixo, um exemplo de um erro que tivemos recentemente e que era a causa do Erro 500:

[Mon Dec 18 11:25:30.592569 2017] [core:alert] [pid 3048] [client xxx.xxx.xxx.xxx:49634] /diretorio/do/site/sites/nome_do_site/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

Na linha acima, há uma indicação de que o problema é relativo a um comando contido na configuração do arquivo .htaccess que o Apache não está reconhecendo. Neste caso, o .htaccess tinha a seguinte linha:

Header set X-Endurance-Cache-Level "2"

E este comando “Header” não estava sendo entendido pelo Apache. Neste caso, o que descobrimos é que esse para este comando “Header” seja entendido pelo Apache, era necessário que o módulo “headers” fosse habilitado no Apache. Dessa forma, habilitamos o módulo e reiniciamos o servidor, através dos seguintes comandos:


cd /etc/apache2/mods-available/
a2enmod headers
/etc/init.d/apache2 restart

Feito isso, o problema foi resolvido. Mas claro, esta solução final é válida para este problema em específico que tivemos. Lembrando que o Erro 500 pode acontecer por diversos outros motivos.

Mas a solução genérica para o erro 500 é:

  1. Verifique as permissões e donos dos arquivos do seu site.
  2. Verifique o arquivo de log de erro do seu site e procure pelas linhas onde haja alguma indicação do problema.

Caso você localize o problema no arquivo de log e não saiba como resolver aquele problema em específico, procure na internet que é bem provável que você encontrará alguém que já teve o mesmo problema e então te dará a solução.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!