500 Interner Serverfehler
Der Webserver versuchte, die Seite zu produzieren, etwas ging schief innerhalb, und es gab einen Statuscode statt eines Grundes.
500 Internal Server Error
Der Grund liegt im Fehlerprotokoll des Servers, nicht auf der Seite. Lesen Sie die letzten Zeilen davon, bevor Sie etwas ändern - eine 500, die durch einen fehlerhaften .htaccess verursacht wird, und eine 500, die durch einen fatalen PHP-Notfall verursacht wird.
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.
| Ursache | So prüfen Sie es | Lösung |
|---|---|---|
| Ein fehlgeformter .htaccess | Wenn die 500 eine Arbeitsseite oder eine 404 wird, war .htaccess die Ursache. | Lassen Sie WordPress ein sauberes schreiben, indem Sie Permalinks erneut speichern. Eine Direktive von einem Plugin, das der Server nicht unterstützt, ist der übliche Grund. |
| Ein PHP fataler Fehler, den der Handler nicht melden konnte | Das PHP-Fehlerprotokoll hat einen "Fatal Error"-Eintrag, der auf Ihre Anfrage getaktet ist, während das Access-Log die 500 aufzeichnet. | Behandeln Sie es als fatal: Finden Sie die benannte Datei, deaktivieren Sie das Plugin oder Theme, das sie besitzt. |
| Falsche Dateiberechtigungen | Verzeichnisse, die nicht 755 sind, oder Dateien, die nicht 644 sind, oder alles, was in Gruppen oder Welten geschrieben werden kann und was der Handler nicht ausführen möchte. | Zurücksetzen. Eine Wiederherstellung von einem Backup, das keine Modi erhalten hat, ist die übliche Ursache dafür, dass ein ganzer Baum auf einmal falsch ist. |
| Eine PHP-Erweiterung fehlt nach einer Versionsänderung | Das Fehlerprotokoll benennt eine undefinierte Funktion und nicht ein Syntaxproblem - ein Aufruf zu etwas, das der neue PHP-Build nicht bietet. | Installieren Sie die Erweiterung oder gehen Sie zurück zur PHP-Version, die sie hatte. |
| Dem Server ging eine Ressource aus, die er nicht benennt | Der 500 ist intermittierend unter Last und fehlt, wenn die Website ruhig ist. | Schauen Sie sich Prozessgrenzen und Speicher an, bevor Sie WordPress berühren. Ein intermittierender 500 ist eine Kapazitätsgeschichte, keine Codegeschichte. |
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.
Lesen Sie zuerst das Server-Fehlerprotokoll
Alles andere auf dieser Seite ist eine Vermutung, bis Sie es haben. Der Standort variiert; diese beiden decken die meisten Stapel ab.
tail -n 40 /var/log/nginx/error.log tail -n 40 /var/log/apache2/error.log
Nehmen Sie .htaccess aus dem Bild
Ein Umname sagt Ihnen, ob es sich um Umschreibungsregeln handelt, ohne etwas zu löschen.
mv .htaccess .htaccess.off
Wenn das es repariert hat, lassen Sie WordPress einen neuen schreiben
Re-Sparen Permalinks regeneriert den Block WordPress besitzt und fällt, was sonst angesammelt hatte.
wp rewrite flush --hard
Prüfen Sie Berechtigungen über den Baum
Alles, was von der Welt geschrieben werden kann, ist sowohl ein 500-Risiko als auch ein Sicherheitsrisiko.
find . -type d ! -perm 755 | head find . -type f ! -perm 644 | head
Bestätigen Sie, dass PHP selbst gesund ist
Wenn PHP keine triviale Datei ausführen kann, liegt das Problem vollständig unter WordPress.
php -v && php -r 'echo "php ok\n";'
Darum kümmert sich die Plattform.
Es gibt keinen .htaccess to malform - nginx besitzt die Umschreibungen, und sie werden von der Konfiguration und nicht von einer Datei innerhalb des Web-Roots angewendet, an die jedes Plugin anhängen kann. PHP-Versionen werden pro Site mit dem Erweiterungssatz, der mit ihnen einhergeht, umgeschaltet, so dass die fehlende Erweiterungsversion dieses Fehlers den Switch nicht überlebt, und das Fehlerprotokoll ist ein Klick vom Dashboard und nicht ein Pfad, den Sie erraten müssen.
Häufige Fragen.
Warum sagt die Seite nicht, was schief gelaufen ist?
Unterscheidet sich ein 500 von einem weißen Bildschirm?
Alles funktioniert bis auf eine Seite. Kann das eine 500 sein?
Sollte ich nur die Gedächtnisgrenze erhöhen und sehen?
War es keiner davon?
Diese Fehler können im Browser ähnlich aussehen.