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à:
- 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 - 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.