Moodle com erro 500: o que significa e como resolver

Uma página em branco, ou a mensagem "HTTP ERROR 500" ("Internal Server Error"), é das falhas mais frustrantes do Moodle: não diz nada sobre a causa. O que ela significa, na prática, é que o PHP falhou ao montar a página, e o servidor devolveu uma resposta genérica.

A causa real está registrada em algum lugar. O trabalho é achá-la.

Onde está a causa real

  1. Log de erros do servidor ou do PHP. No painel da hospedagem, procure por "logs de erro". A última linha no horário do erro quase sempre aponta o arquivo e o motivo.
  2. Depuração do Moodle. Se o log não ajuda, ative a depuração no config.php por alguns minutos para a mensagem aparecer na tela. Depois, desative.

As causas mais comuns

1. Versão do PHP incompatível

É a campeã. A hospedagem atualiza o PHP e o Moodle, que só suporta uma faixa de versões, para de funcionar. Também acontece o contrário: atualizar o Moodle sem subir o PHP. Confira os requisitos nas versões do Moodle.

2. Limite de memória do PHP

Relatórios grandes, backups de curso e upgrades consomem memória. Com um limite baixo, a página estoura e devolve erro 500. O log mostra algo como "Allowed memory size exhausted".

3. Plugin quebrado ou incompatível

Se o erro aparece só numa página, atividade ou bloco, o suspeito é o plugin daquela área. Plugins sem manutenção são uma das maiores fontes de erro 500 depois de atualizações. Veja como escolher plugins.

4. Permissões de arquivo e pasta

Depois de uma migração ou restauração, permissões erradas no código ou na pasta moodledata impedem o PHP de ler ou gravar. O resultado pode ser erro 500 ou página em branco.

5. Regras do servidor e .htaccess

Uma regra mal escrita no .htaccess ou na configuração do servidor também derruba tudo com erro 500, inclusive páginas que nem chegam ao Moodle.

Se o erro aparece nos horários de pico

Erro 500 intermitente, que some sozinho, costuma ser servidor no limite: processos do PHP esgotados, memória ou banco sobrecarregado. Contamos um caso assim em servidor caindo no horário de entrega das tarefas. Se a plataforma também não abre no app, veja Moodle não abre: o que fazer.

Perguntas frequentes

O que é o erro 500 no Moodle?

É um erro interno do servidor: o PHP falhou ao montar a página e o servidor devolveu uma resposta genérica. A causa real fica registrada no log de erros do servidor ou do PHP.

O erro 500 no Moodle apareceu depois que a hospedagem atualizou o PHP. O que fazer?

Cada versão do Moodle suporta uma faixa de versões do PHP. Se a hospedagem trocou o PHP para uma versão fora dessa faixa, o Moodle quebra. A solução é voltar para uma versão de PHP compatível ou atualizar o Moodle.

Como ver a causa do erro 500?

No log de erros do servidor web ou do PHP, normalmente acessível pelo painel da hospedagem. Também dá para ativar a depuração do Moodle no config.php, por pouco tempo.

Erro 500 pode ser falta de memória?

Sim. Se o limite de memória do PHP for baixo, páginas pesadas, relatórios e upgrades estouram o limite e devolvem erro 500.

Alejandro Argachá, especialista em Moodle

Escrito por Alejandro Argachá

Trabalha com Moodle desde 2011, com mais de 250 projetos entregues, boa parte para outras empresas que vendem Moodle. Resolve na prática problemas como este em plataformas de empresas e instituições brasileiras. Ver casos reais.