NeuBlack Friday – 50 % Rabatt auf die erste Zahlung
WordPress-Fehlerbehebung

Der WordPress White Screen des Todes

Eine völlig leere Seite ohne Fehler und ohne HTML. PHP stoppte mitten in der Anfrage und die Nachricht ging zu einem Protokoll, das Sie noch nicht gelesen haben.

(a blank white page, no text at all)

Kurzantwort

Der Bildschirm ist leer, weil display_errors ausgeschaltet ist, nicht weil es nichts zu sagen gibt. Wechseln Sie auf WP_DEBUG_LOG, laden Sie die Seite einmal neu und lesen Sie wp-content/debug.log - der letzte Eintrag benennt die Datei und die Zeile, die gestoppt wurde.

Diagnose

Die wahrscheinlichsten Ursachen zuerst.

Gehen Sie die Liste der Reihe nach durch. Prüfen Sie jede Ursache, bevor Sie etwas ändern, da die Lösungen unterschiedlich sind und eine Vermutung mehr Zeit kostet als ein Befehl.

UrsacheSo prüfen Sie esLösung
Ein fataler PHP-Fehler in einem Plugin oder ThemeDer Log-Eintrag beginnt mit "PHP Fatal Error" und benennt eine Datei unter wp-content.Deaktivieren Sie das benannte Plugin oder Switch-Theme. Wenn die Datei zu einem Theme gehört, stellt der Wechsel zu einem Standard-Theme die Site wieder her, während Sie sie sich ansehen.
Die Speichergrenze wurde erreichtDas Protokoll sagt "Erlaubte Speichergröße ... erschöpft". Eine leere Seite und ein Out-of-Memory-Kill sehen identisch aus dem Browser.Heben Sie den Grenzwert genug, um die Seite zu laden, dann finden Sie, was den Speicher benötigt. Der Grenzwert ist ein Symptom, nicht die Ursache.
Nur wp-admin ist weißDas Frontend rendert und das Dashboard nicht, oder umgekehrt. Diese Asymmetrie zeigt auf Admin-only-Code.Das Fatale ist ein reiner Admin-Pfad. Benennen Sie das Plugin-Verzeichnis über SFTP um, um wieder reinzukommen, und reaktivieren Sie es dann einzeln.
OPcache serviert eine veraltete kompilierte DateiDie Seite war in Ordnung, eine Datei wurde bearbeitet, und jetzt ist sie leer - und der Fehler benennt eine Zeile, die in der Datei nicht mehr existiert.Flush-OPcache. PHP ohne Flush bearbeiten lässt die kompilierte Version und die Quelle nicht zustimmen.
Ein Syntaxfehler in einer Datei, die Sie gerade bearbeitet habenphp-l auf der Datei, die Sie zuletzt berührt haben, meldet den Fehler, ohne WordPress überhaupt zu benötigen.Eine verirrte Klammer in wp-config.php oder functions.php entfernt jede Seite auf einmal.
Anleitung

Schritt für Schritt zur Lösung.

Die Befehle setzen WP-CLI und Shell-Zugriff voraus. Jeder Schritt erklärt, was er tut, damit Sie ihn bei Bedarf im Dashboard oder per SFTP ausführen können.

  1. Schalten Sie die Nachricht wieder ein

    Loggen Sie sich statt anzeigen: Sie möchten das Detail, ohne eine Stack-Trace für die Besucher zu veröffentlichen.

    wp config set WP_DEBUG true --raw
    wp config set WP_DEBUG_LOG true --raw
    wp config set WP_DEBUG_DISPLAY false --raw
  2. Laden Sie die leere Seite einmal neu und lesen Sie dann das Protokoll

    Der letzte Eintrag ist deins. Alles darüber kann altes Rauschen sein.

    tail -n 30 wp-content/debug.log
  3. Wenn es ein Plugin benannt hat, nehmen Sie dieses Plugin aus der Anforderung heraus

    Deaktivieren nach Namen ist genug; Sie müssen nichts löschen.

    wp plugin deactivate the-named-plugin
  4. Wenn Sie wp-admin überhaupt nicht erreichen können, deaktivieren Sie Plugins aus dem Dateisystem

    Durch Umbenennen des Verzeichnisses findet WordPress keine Plugins, was ausreicht, um das Dashboard zurückzubekommen.

    mv wp-content/plugins wp-content/plugins.off
  5. Debuggen wieder ausschalten, wenn Sie fertig sind

    Ein Debug-Log links wächst ohne Limit und zeichnet Pfade auf, die Sie lieber nicht veröffentlichen würden.

    wp config set WP_DEBUG false --raw
Mit MagicWP

Darum kümmert sich die Plattform.

Der weiße Bildschirm ist eher ein Konfigurationsunfall als eine WordPress-Funktion: PHP wird gesagt, dass keine Fehler angezeigt werden sollen und nichts wird gesagt, um sie zu protokollieren. Hier ist das Protokoll eingeschaltet und von der ersten Anforderung an beschreibbar, also ist ein fataler Fehler eine Zeile, die Sie lesen können, anstatt eine leere Seite. Klonen der Website vor einem Update bedeutet, dass das Plugin, das Fatals tut es auf einer Kopie, die niemand besucht.

Häufige Fragen

Häufige Fragen.

Warum ist die Seite leer, anstatt den Fehler anzuzeigen?
Da display_errors deaktiviert ist, was für eine Produktionsseite korrekt ist. Die Nachricht existiert immer noch - sie geht in ein Protokoll. WP_DEBUG_LOG zeigt sie auf wp-content/debug.log, ohne den Besuchern etwas zu zeigen.
Die Vorderseite ist gut, aber wp-admin ist weiß.
Das Fatale ist in Code, der nur im Dashboard läuft. Viele Plugins registrieren nur Admin-Bildschirme, so dass ein Fehler in einem davon niemals einen Besucher berührt und jeden Editor ausschaltet.
Ich habe die Datei repariert, aber die Seite ist immer noch leer.
Prüfen Sie, ob OPcache noch die alte kompilierte Kopie hält. Wenn der Fehler eine Zeilennummer benennt, die nicht mehr mit der Datei übereinstimmt, die Sie sich ansehen, sehen Sie das.
Kann ich den Täter ohne Kommandozeilenzugriff finden?
Ja, über SFTP. Umbenennen wp-content/plugins zu etwas anderem, um sie alle auf einmal zu deaktivieren, bestätigen Sie die Website-Returns, dann umbenennen Sie es zurück und deaktivieren Sie Plugins einzeln aus dem Dashboard.
Verwandte Fehler

War es keiner davon?

Diese Fehler können im Browser ähnlich aussehen.