Irgendwann trifft es alle mal, eine defekte WordPress-Installation legt unsere schöne Webseite lahm.
Wie es dazu kam, ist in vielen Umständen unklar.
Daher habe ich hier ein kleinen Ratgeber geschrieben, welcher einige „übliche“ Probleme aufgreift und eine möglicherweise brauchbare Lösung liefert.
Ich empfehle aus diesem Grund auch, den Text vollständig zu lesen und sich nebenbei Gedanken zu machen, ob die einzelnen Passagen auf dein Problem zutreffen.
Es kann unter Umständen sein, das einige Punkte gleich ausgelassen werden können, da die Funktionalität oder Zugriffsmöglichkeit komplett eingeschränkt ist.
Ausgangspunkt bei mir zum schreiben dieses Textes, war eine defekte Datenbank.
Die Seite an sich funktionierte noch, doch ich konnte keine Beiträge oder Seiten erstellen oder Medien hochladen. Die Seite für den Editor blieb einfach „weiß“.
Los gehts!
1. Keine Panik!
Panik und Hektik ist jetzt genau das, was wir nicht brauchen.
Egal ob es nur ein Hobby-Blog ist oder eine 24/7-Website die benötigt wird. Auch wenn irgendwelche Personen gerade hinter dir stehen und jammern, dadurch geht es nicht schneller.
Hol dir am besten etwas zu trinken und beginne dann mit der Wiederbelebung.
2. Überprüfen der Lage.
Was ist denn eigentlich alles kaputt? Das sollte man jetzt erst einmal heraus finden. Deshalb habe ich ein paar Prüfpunkte niedergeschrieben, welche man einfach mal testen kann.
– Was wurde gemacht, bevor die Seite nicht mehr ging?
– Ist die Seite aufrufbar?
– Sind Beiträge und Seiten aufrufbar?
– Funktionieren Downloads?
– Geht das Backend noch?
– Kann ich neue Seiten und Beiträge anlegen / Editieren / Löschen?
– Kann ich Medien hochladen / Editieren / Löschen?
– Kann ich Nutzer verwalten?
– Kann ich meine Profileinstellungen anpassen?
– Sind alle Plugins und die WordPress-Installation aktuell?
– Ist die Datenbank in Ordnung?
=> Lese + Schreib-Rechte für den Nutzer
=> Keine defekten Tabellen
3. Sperr den Zugriff auf die Seite.
Ist es nur ein Hobby-Blog, ist eine Down-Time zu verkraften.
Ist es hingegen eine Seite die 24/7 erreichbar sein muss, solltest du eventuell eine Down-Time zu einem unkritischen Zeitpunkt einplanen oder eine Klon-Seite aufsetzen.
Durch die Sperrung haben wir immerhin die Sicherheit, das von keinem anderen User Inhalt hochgeladen wird, was die Seite noch mehr zerstören kann.
Nutze hierfür entweder „Wartungs“-Plugins oder sperr über den Webserver den Zugriff auf die Seite.
4. BackUp machen!
Erstelle jetzt erst einmal ein BackUp der gesamten Seite.
Warum?
Nun, wir werden gleich einige Funktionen testen und es KANN dabei vorkommen, das wir die Installation noch mehr zerstören als sie jetzt schon ist.
Mit dem BackUp haben wir immerhin die Möglichkeit, die Seite zu ihrem aktuellen Zustand wiederherzustellen.
Sichere daher die kompletten Daten auf dem Webserver als auch die Datenbank.
5. Häufige Ursache – Defekte Plugins
Es kann durchaus mal vorkommen, das nach einem Update ein Plugins die Seite nicht mehr funktioniert.
Das ist zwar doof, aber das wäre von allem noch das kleinste Problem.
Deaktiviere – soweit das Backend funktioniert – ein Plugin nach dem anderen und teste, ob die Seite dann wieder korrekt funktioniert.
Soweit die Installation von Plugins noch funktioniert, kannst du das Plugin Health Check & Troubleshooting installieren und ausführen.
Es deaktiviert nur für dich alle Plugins. So würde sich WordPress wieder so verhalten, als wären absolut keine Plugins installiert.
Ist das defekte Plugin gefunden, gibt es in der Regel zwei Optionen.
1. Das Plugin deaktiviert lassen und auf ein Update hoffen.
2. Das Plugin deinstallieren und vorerst nicht mehr nutzen.
Sollte kein Zugriff auf das Backend mehr bestehen, kann ein Plugin auch manuell „deaktiviert“ werden.
Dazu muss in der WordPress-Installation einfach der passende Plugin-Ordner entfernt werden.
Dieser Ordner findet man hier: …/wp-content/plugins
Durch das löschen kann es vorkommen, das im Backend eine Warnmeldung auftaucht, das ein Plugin fehlt bzw. defekt ist. Aber das ist in diesem Moment egal, denn wir kommen ja wieder rein 🙂
6. Cache funktioniert nicht mehr
Wer Cache-Plugins oder andere Dienste für ein Cache-Service nutzt, sollte diesen abschalten. Eventuell hängen diverse Daten noch im Cache und unterbinden das korrekte aufrufen der Seiten.
Das leeren des Browser-Cache ist auch hier sehr ratsam.
7. Nach Serverumzug / Neuinstallation Berechtigungen prüfen
Ist die Installation umgezogen, sollten wir jetzt erst einmal prüfen, ob alle Daten die korrekten Berechtigungen haben.
In der Regel sollten Lese und Schreibrechte auf 644 für Dateien und 755 für Ordner sein und der Besitzer sollte der Nutzer www-data sein. Letzteres kann auch ein anderer Nutzer sein, soweit dein Webserver anders konfiguriert ist.
8. Die Installation mit frischen Daten versorgen
Sollten eventuell Daten der WordPress-Installation fehlen oder durch ein Update defekt sein, können wir diese mit „frischen“ Dateien wieder ersetzen lassen.
Dazu laden wir einfach ein frisches WordPress.zip von WordPress direkt herunter und entpacken es auf unserem Rechner.
Wir laden jetzt alles BIS AUF den Ordner wp-content und die wp-config.php auf unseren Webserver hoch.
Achtet dabei auf die korrekten Berechtigungen aus Schritt 7.
Ist alles hochgeladen, leert ggf. jetzt noch einmal die Cache-Dateien aus Cache-Plugins und anderen Diensten!
9. Datenbank überprüfen
Hat man wirkliches Pech, ist die Datenbank eventuell kaputt.
Mit ein paar Tricks, können wir versuchen die Datenbank wieder zu reparieren. Diese Mittel sind allerdings nur beschränkt und können die schlimmsten Fehler zum Teil nicht fixen.
WordPress es automatisch fixen lassen:
Dazu müssen wir in die wp-config.php an einer Stelle folgenden Eintrag hinzufügen:
define('WP_ALLOW_REPAIR', true);
Anschließend rufen wir unsere Webseite mit folgender URL auf:
http(S)://DeineDomain.de/wp-admin/maint/repair.php
Lass den Reparaturassistent durchlaufen und prüfe anschließend, ob die Seite wieder korrekt läuft.
Tut sie das, entferne dein Eintrag aus der wp-config.php wieder, damit die Reparatur wieder deaktiviert wird.
Die Datenbank von Hand reparieren:
WICHTIG: Hierbei nutzen wir die Reparaturmethoden der SQL-Datenbank und NICHT von WordPress! Es kann unter Umständen hier zu Fehlfunktionen in WordPress an sich kommen.
Dies ist etwas aufwändiger und erfordert SSH-Zugriff zur Datenbank oder einen phpmyAdmin-Zugriff mit ausreichenden Rechten.
Logge dich hierzu mit dem passenden Benutzer ein, welcher auch der Besitzer der WordPress-Datenbank ist.
# mysql -u DATENBANKUSER -p PASSWORT
# use NAMEDERDATENBANK
# REPAIR TABLE wp_options
Somit haben wir die Tabelle wp_options repariert, sofern zum einen Fehler in der Tabelle sind und diese auch wirklich von einem Problem betroffen war.
Das ganze lässt sich auch mit diesem Befehl auf die gesamte Datenbank ausweiten:
SELECT CONCAT('repair table ', table_name, ';')
FROM information_schema.tables
WHERE table_schema='DEINEDATENBANK';
Ist alles durchgelaufen, wird die Ausgabe entweder sagen, dass alles in Ordnung ist oder sie wird die aufgetretenen Fehler anzeigen und ob sie repariert wurden.
Teste nun ob die Seite wieder läuft.
10. Alles hat nicht geholfen? Eine Neuinstallation wäre eventuell jetzt sinnvoll.
Hab aber jetzt immer noch keine Panik, wenn wir können vieles wieder übernehmen.
Ich gehe jetzt in diesem Punkt davon aus, dass der Backend-Zugriff funktioniert und wir dort uns noch zu Werkzeuge → Daten exportieren navigieren können.
Wir exportieren nun jeden einzelnen Punkt der dort aufgelistet ist, sichern den Ordner wp-content aus der Installation, entnehmen (soweit das geht) diverse Configs und Keys aus Plugins und notieren uns Einstellungen aus Designs, sowie Widgets.
Anschließend installieren wir WordPress neu und importieren einfach alle Daten wieder, schieben den wp-content-Ordner wieder in die Installation und richten unsere Webseite ein.
Somit haben wir alle Beiträge, Seiten, Kommentare, Einstellungen, … übernommen und müssen nur kleine Anpassungen am Design vornehmen.
Bei nicht all zu großen WordPress-Seiten, dauert dieser Schritt rund 2h, bis alles wieder „normal“ läuft.
Vorteil hier: Wir haben eine frische WordPress-Installation. Die Datenbank ist sauber und wir haben keinerlei alte Datenreste mehr auf dem System. Im Optimalfall läuft die Seite nun ein Stück schneller.
Damit sind wir auch am Ende des kleinen Ratgebers.
Ich hoffe der ein oder andere Punkt trifft bei dir zu und du konntest dein Problem beheben.
Falls nicht, wende dich doch an die WordPress-Comunity. Die haben immer ein Rat auf Lager.
Was war nun mein eigenes Problem?
Ich hatte eine defekte Datenbank.
Der Editor funktioniert zwar halbwegs, ich konnte dort aber nur Seiten bearbeiten.
Das erstellen von neuen Seiten oder Beiträgen war nicht mehr möglich.
Habe ich SEO-Plugins aktiviert gehabt, blieb die Seite einfach leer (weiß).
Habe ich SEO-Plugins deaktiviert, baute sich zwar der Editor auf, die Textbox kam aber nicht und die aus dem Titel generierte Domain blieb bei „?preview=true“ stehen.
Das abschicken von Beiträgen und Seiten ging auch nicht mehr, da ich sie als Administrator nur zur Überprüfung einreichen konnte. Und selbst mit diesem Button, erhielt ich nur als Antwort, das ich keine Rechte dazu habe.
Medien konnte ich auch nicht mehr hochladen. Der Upload lief zwar durch und die Datei landete im korrekten Ordner, doch sie wurde von WordPress als nicht hochgeladen anerkannt.
Meine Lösung war Schritt 10. Das exportieren der Daten und neu Aufsetzen der gesamten Seite. Hat mich 2h Zeit gekostet, aber die Seite läuft wieder.