Tela branca no Drupal 7 (WSOD): exibindo os erros invisíveis

Algumas vezes acontece de um usuário ou um desenvolvedor estar navegando no site e de repente o conteúdo da página desaparece e torna-se em branco. Nenhum conteúdo. Sem erros. Nada. Isso pode acontecer, por exemplo, após a atualização de um módulo, tema ou núcleo do Drupal. Isto é o que é chamado pela maioria dos membros da comunidade Drupal como tela branca da morte ou WSOD ("white screen of death"). Existem várias razões pelas quais isso pode ocorrer e, portanto, várias soluções possíveis para o problema. Mas muitos dos problemas poderiam ser descobertos se os erros estivessem explícitos na tela.

Erros "invisíveis"

Se o relatório de erros estiver desligado, você pode estar obtendo um erro fatal (fatal error), que não está sendo exibido. É comum que, em sites em Produção, os erros sejam desativados — isso impede que um hacker descubra informações importantes a respeito do seu sistema. Então, quando o PHP atinge um ponto de erro irrecuperável, nem o erro e nem o conteúdo aparecerão na tela, resultando em uma página absolutamente branca.

Há uma forma muito simples de habilitar a exibição dos erros do PHP temporariamente, para que você tenha capacidade de avaliar melhor o problema: editando o arquivo index.php (localizado na raiz do seu site) e inserindo, logo após a tag de abertura do PHP, o seguinte trecho de código:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Se você estiver usando uma instalação multi-site e deseja exibir erros de um site específico, então terá que verificar o domínio do mesmo antes:

if ($SERVER['HTTP_HOST']==='seu.dominio.aqui') {
  error_reporting(E_ALL);
  ini_set('displayerrors', TRUE);
  ini_set('display_startup_errors', TRUE);
}
?>

Se o erro estiver acontecendo no arquivo update.php, então abra o arquivo update.php e descomente a linha abaixo:

ini_set('display_errors', FALSE);

Se ainda assim o erro não aparecer, pode ser algum problema de memória, compatibilidade de código ou outras 1001 coisas. Leia a documentação do Drupal sobre WSOD (inglês).

Conforme dito no início do artigo, há muitas coisas que podem levar à "tela branca da morte". Dependendo do seu caso, você pode levar um bom tempo para descobrir a causa. Mas, para mim, esse procedimento funcionou na maioria das vezes. Espero que seja útil para você também.

Curtiu? Então comente e compartilhe o artigo ;)