Una pagina vuota con stato 200 è PHP che incontra un errore fatale mentre display_errors è spento. L'errore c'è; è stato scritto in un log invece che a schermo. Nulla è rotto senza rimedio, e il log le dirà il file e la riga.

Legga il log, non accenda display_errors

Accendere gli errori nel browser mostra i suoi percorsi di file a chiunque apra la pagina. Il log contiene le stesse informazioni e non le mostra a nessuno.

tail -40 /var/log/php8.3-fpm.log
# or, if the site sets its own:
tail -40 /path/to/site/error_log

Se il log è vuoto

Allora PHP non è mai arrivato abbastanza avanti da scriverne uno. Due cause, in ordine di probabilità:

  1. La memoria — Uno script che supera memory_limit viene ucciso prima di poter scrivere alcunché. Lo alzi per un momento per vedere l'errore vero: memory_limit = 512M
  2. Un errore di sintassi in un file incluso — php -l lo nomina: php -l wp-config.php

Su WordPress in particolare

Nove volte su dieci è un plugin o un tema aggiornato pochi minuti prima. Rinomini la directory dei plugin: il sito torna con tutti i plugin spenti, e rinominarli indietro uno per volta trova il colpevole.

mv wp-content/plugins wp-content/plugins.off
# site loads? rename back and re-enable one at a time
Aggiunga define("WP_DEBUG_LOG", true); a wp-config.php. L'errore finisce in wp-content/debug.log e non a schermo.