Página em branco no PHP: como ver o erro

Uma página branca quer dizer que o PHP deu um erro fatal e está configurado para não o mostrar. É a configuração certa para um site público, e é por isso que o erro existe mas não o vê. A solução não é fazer o erro aparecer a toda a gente: é ir lê-lo ao sítio onde fica registado.

Ler o erro, por ordem de esforço

1 Procure o ficheiro error_log. Por omissão o PHP escreve num ficheiro chamado error_log na pasta do script que falhou. No File Manager, abra a pasta do site e as das aplicações, ordene por data e abra o mais recente. A última linha é, em regra, a resposta.
2 Veja o registo do cPanel. A ferramenta Errors mostra os erros mais recentes do site. Veja onde está o registo de erros do PHP e como o ler.
3 Se não encontra nada, mostre o erro durante um minuto. Crie um .user.ini na pasta com as duas linhas abaixo, espere uns minutos, recarregue a página, e apague o ficheiro logo a seguir.

display_errors = On
error_reporting = E_ALL

Se tem acesso a uma linha de comandos (veja o Terminal do cPanel), php -l ficheiro.php verifica se um ficheiro tem erros de sintaxe sem o executar.

O que costuma estar por trás

A última linha do registo diz… Causa Vá para
Allowed memory size … exhausted O pedido gastou mais memória do que o limite. Memória esgotada
Maximum execution time … exceeded O script demorou demais. Tempo de execução
Call to undefined function Falta uma extensão nesta versão do PHP. A extensão que falta
Parse error / syntax error Uma gralha no código: uma chaveta, um ponto e vírgula. Corrija a linha indicada, ou reponha a cópia anterior do ficheiro.
Cannot redeclare / Uncaught Error Dois plugins ou ficheiros a definir o mesmo, ou código incompatível com esta versão do PHP. Mudar a versão do PHP

Se o ecrã branco é de um WordPress, há um caminho próprio: ligue o modo de depuração no wp-config.php com define('WP_DEBUG', true);, define('WP_DEBUG_LOG', true); e define('WP_DEBUG_DISPLAY', false);, e leia o ficheiro wp-content/debug.log. Veja também erros comuns do WordPress.

Um pormenor que engana: há um error_log por pasta onde o PHP falhou. O erro de uma página de administração pode estar num ficheiro diferente do da raiz do site, por isso procure também dentro das subpastas, como a da área de administração.

Nunca deixe display_errors ligado num site público. As mensagens mostram caminhos de ficheiros e por vezes dados de ligação à base de dados. Ligue-o para ler o erro, e desligue-o no minuto seguinte.
Mudou alguma coisa um pouco antes de a página ficar branca? Um plugin novo, uma versão do PHP, um ficheiro editado: desfaça essa única alteração primeiro. Muitas vezes o problema desaparece e a leitura do registo fica para depois.

Já viu o registo e não percebe a mensagem? Envie-nos a última linha do error_log e o endereço da página.

Abrir um pedido de suporte

VEJA TAMBÉM

Onde está o registo de erros do PHP, como o ler, e os erros que mais vai ver

Erros comuns do WordPress: ecrã branco, erro crítico e como encontrar a causa

Avisos do PHP no site: o que são e como os silenciar

Erros do site explicados: 500, 403, 404, 508

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?