Tela branca no WordPress 6.9: como achar o erro com PHP 8.3

A página abre branca. Sem mensagem, sem stack trace, corpo vazio — às vezes com 500 no cabeçalho, às vezes com 200 limpinho. Isso é erro fatal do PHP com display_errors desligado, que é exatamente como produção deve estar. A resposta já foi escrita em algum log; o trabalho é achar qual.

A última linha do log do PHP-FPM

grep -n 'error_log|catch_workers_output' /etc/php/8.3/fpm/pool.d/www.conf
sudo tail -n 40 /var/log/php8.3-fpm.log
sudo tail -n 40 /var/log/nginx/error.log

Na instalação padrão do Debian e do Ubuntu aquele php_admin_value[error_log] vem comentado no pool. Sem ele, o erro sai pelo stderr do worker e acaba no error.log do nginx, com o prefixo PHP message: no meio da linha. Você procura algo assim: PHP Fatal error: Uncaught Error: Call to undefined function ... in /var/www/seusite/html/wp-content/plugins/nome-do-plugin/inc/loader.php on line 88. O caminho do arquivo já entrega o culpado, sem chute.

Desativar o plugin sem ter painel

cd /var/www/seusite/html/wp-content/plugins
sudo -u www-data mv nome-do-plugin nome-do-plugin.off

A cada carregamento o wp_get_active_and_valid_plugins() testa com file_exists() se o arquivo principal de cada plugin ativo continua no lugar. Sumindo o diretório, ele pula aquele item e o site volta no F5 seguinte. Renomear em vez de apagar preserva o código e as configurações para quando você quiser investigar com calma. Pelo WP-CLI dá no mesmo: sudo -u www-data wp plugin deactivate nome-do-plugin --skip-plugins roda mesmo com o fatal de pé, porque a flag impede o carregamento dos plugins.

Cuidado com a conta de versão: create_function() e each() sumiram no PHP 8.0, não no 8.3 — só que quem pulou do 7.4 direto para o 8.3 descobre tudo de uma vez. O fatal só estoura quando aquele trecho roda, por isso o site parece inteiro e quebra em uma página só. E se o log não citar plugin nenhum, renomeie a pasta do tema em wp-content/themes: o WordPress cai no tema padrão sozinho, desde que ele ainda esteja instalado.

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *