Die falsche Zeile Code editiert, ein versehentliches Update der Datenbank oder umbemerkt eine Schadsoftware in die Webseite eingeschleust – und schon ist es passiert: Die WordPress-Website liegt in ihren Trümmerteilen aus PHP-Code, Javascript und HTML und macht nix mehr, aber davon verdammt viel. Man kann den Eintritt derartiger Horror-Szenarien nicht gänzlich verhindern. Aber man kann die Konsequenzen entschärfen. Denn wer regelmäßig WordPress Backups anlegt und die MySQL-Datenbank sichert, hat für den Fall der Fälle einen kleinen Joker im Ärmel, der das ein oder andere Kammerflimmern ersparen kann.
Das Anlegen von WordPress Backups ist Thema dieses Artikels. Ein Backup ist kein Hexenwerk und mit der nötigen Routine und schneller Breitbandverbindung in wenigen Minuten erledigt. Selbstverständlich ist eine bestehende bzw. aktive WordPress-Installation die Voraussetzung für das Anlegen von WordPress-Backups. Falls du noch keine WordPress-Webseite am Start hast, wäre es vielleicht jetzt an der Zeit, eine aufzubauen?
Warum regelmäßige WordPress Backups unverzichtbar sind
Ein vollständiges Backup meint nichts anderes als eine komplette Datensicherung aller funktionalen Bestandteile der WordPress-Webseite. Wie schon erwähnt, sind das grundsätzlich nur zwei Elemente:
- Das Verzeichnis im Webspace, in dem die WordPress Webseite installiert ist
- Die zugehörige MySQL-Datenbank
Das Backup sichert somit nicht nur den technischen Kern von WordPress samt Plugins, Themes und aller Uploads (Bilder, Dokumente, Videos usw.), sondern auch die in der Datenbank gespeicherten Einstellung von WordPress sowie Beiträge, Seiten-Inhalte, Kommentare, Verlinkungen, Meta-Informationen und Co.
Eine regelmäßige Datensicherung ermöglicht somit die vollständige Wiederherstellung eines jeden Zustands einer Webseite, zu dem vorher eine Sicherung erfolgt ist. Warum das in der täglichen Internet-Praxis unverzichtbar ist, leuchtet schnell ein. Falls nicht, können die folgenden Gründe für die Nutzung von Backups deinem „Aha!“-Effekt etwas Starthilfe geben.
In der Backup-Praxis ist es natürlich nicht immer nötig oder sinnvoll, ein vollständiges Backup der Datenbank und des WordPress-Verzeichnisses auszuführen. Gerade bei umfangreichen WordPress-Seiten oder WordPress-Multisites kann das Verzeichnis eine enorme Größe annehmen, die jegliche Zeitfenster für eine Backup-Routine gnadenlos sprengen würden. Als Backup-Faustregel für den allgemeinen Use-Case gilt:
- Jede zu verändernde Datei wird vor der Änderung einmal gesichert.
Quellcode-Kompilierungsfehler
Der wohl häufigste Grund für das Einspielen eines Backups zur Wiederherstellung der Funktionsfähigkeit sind Kompilierungsfehler im Quellcode, die durch manuelle Bearbeitung entstehen. Ein Leerzeichen, Punkt, Semikolon oder eine klammer zu viel und schon ist das Malheur groß: Die betroffene Datei kann vom Webserver nicht richtig kompiliert werden, der Webserver schmeißt mit Fehlermeldungen um sich und die Webseite ist nicht mehr erreichbar.
Die schlechte Nachricht: das kann den Besten passieren. Die gute Nachricht: Mit einem vorherigen Backup lassen sich die Fehlerquellen schnell ausmerzen und die Webseite ist wieder betriebsbereit. Die Voraussetzung ist ein aktivierter Debug-Mouds für WordPress (Achtung: Sicherheitsfaktor).
Wir empfehlen normalerweise, im Rahmen der wp-config.php Absicherung das Debugging zu deaktivieren, damit keine sicherheitsrelevanten Error-Messages ausgegeben werden, die auch potentiellen Angreifern verraten könnten, wo die eigene WordPress-Webseite gerade so verwundbar ist. Wenn wir Kompilierungsfehler herausfinden müssen, sollte der Debug-Modus also wieder temporär aktiviert werden.
Fehlerhaftes WordPress Update
Wenn die Notifications in der Top-Bar des Admin-Bereichs mal wieder fröhlich vor sich hinblinken, ist es wohl wieder an der Zeit für ein neues WordPress Core-Update. Falls die automatische Update-Funktion aktiviert ist, fragt WordPress nicht einmal mehr nach, bevor das Update ausgeführt wird. Doch derart unkontrollierte Updates vernichten schnell die ein oder andere Kompatibilitäts-Konstellation der WordPress Plugins und schon fliegt einem die eigene Seiten um die Ohren. Einziger Lösungsansatz: Backup einlesen.
Fehlerhaftes Theme Update
Ein Theme Update kann ebenso Inkompatibilitäten hervorrufen, wie ein WordPress Core-Update. Veränderte Datentypen, Parameter, fehlerhafte CSS-Erweiterungen im Child Theme oder unsauber programmierte Schnittstellen zu elementaren WordPress-Funktionen machen das Einspielen eines Backups oft unausweichlich. Das löst das eigentliche Problem zwar nicht, macht die Webseite aber wieder arbeitsfähig, bis die Theme-Entwickler das Problem in den Griff bekommen haben oder man die eigenen Fehler in der eigenständigen Theme-Anpassung entdeckt hat.
Alternativ kann man auch in einigen Problemfällen manuell die Theme-Settings direkt über die MySQL-Datenbank anpassen und eines der Default-Themes von WordPress aktivieren, damit das WordPress-Backend wieder erreichbar ist. Das setzt allerdings adäquate SQL-Kenntnisse voraus.
Fehlerhafte WordPress-Plugin Updates oder Datenbank-Aktualisierungen
Schlecht programmierte Plugins gibt es wie Sterne in der Milchstraße. Ausführliches Testing samt Debugging ist in der Branche der Plugin-Developer aber längst nicht allgegenwärtig und eher ein gefühltes Premium-Feature. Die meisten WordPress-Plugins können zwar durch simples Deaktivieren unschädlich gemacht werden, aber das funktioniert nicht immer.
Denn spätestens, wenn ein Plugin die MySQL-Datenbank durch ein Update der eigenen Datenbank-Tabellen nachhaltig verändert und dabei Fehler unterlaufen, ist ein Backup der WordPress Datenbank unausweichlich. Gut, wenn man für diesen Fall vorgesorgt hat und ein frisches Backup auf der sorgsam verstauten Festplatte wartet.
Natürlich muss nicht immer gleich ein Backup eingespielt werden. In vielen Fällen reicht es aus, das betreffende Plugin via FTP umzubenennen. Dazu wird lediglich das betreffende Verzeichnis über einen FTP-Client gelöscht oder umbenannt, was den selben Effekt hat. So findet die WordPress-Installation das installierte Plugin nicht mehr und deaktiviert es:
Schadsoftware / Hacking
Wer sich nicht um ausreichende WordPress Sicherheit kümmert, muss sich früher oder später mit Schadsoftware oder einem erfolgreichen Hack der eigenen WordPress-Webseite beschäftigten. Hier gibt es keinen Handlungsspielraum. Ist eine Webseite erst einmal kompromittiert, bietet nur das vollständige Überschreiben von Core und Datenbank vollständige „Desinfizierung“. Manuelles „Search & Destroy“ von Schadcode ist zwar möglich, aber nicht praktikabel und definitiv nicht sicher.
Versehentliches Überschreiben / Löschen wichtiger Daten
Einen Moment der Unachtsamkeit und schon hat man das wichtige Template, Serverkonfigurationsdateien oder die wp-config.php verändert und dabei wichtige Informationen gelöscht oder versehentlich verändert. Aber nur die wenigsten Webworker machen konsequente Backups einzelner Dateien, die sie gerade verändern. Das Credo: „Wird schon nix passieren, ich bin ja Profi“.
Und siehe da – wenn die Webseite nicht mehr lädt, werden dicke Backen gemacht. Gut, wer noch ein aktuelles Backup im Rücken hat, aus dem sich die zerstörten Dateien oder Datenbankeinträge auch einzeln auslesen und ersetzen lassen. Andernfalls kann eine Minute der Faulheit hier unzählige Stunden manueller Reparaturarbeiten mit sich bringen, die wohl nur in den wenigsten Fällen gerne vom Kunden bezahlt werden.
WordPress Backups mit Plugins erstellen
Wer jetzt erwartet, dass ich hier eine Plugin-Lösung für ein simples „one-click-backup“ vorstelle, liegt leider falsch. Es existieren zwar durchaus einige Plugins, die ein Backup der Datenbank oder von WordPress selbst in nur wenigen Schritten ermöglichen – das ist aber weder sinnvoll noch nötig.
Denn selbst auf konventionellem Wege – also über FTP-Client und phpMyAdmin – ist die Datensicherung von Datenbank und Webspace in wenigen Schritten eingeleitet und läuft dann völlig automatisch – Internetverbindung vorausgesetzt.
Das ist vielmehr eine Erziehungsmethode als nur Sturheit. Wer als Unternehmer oder Blogger eine WordPress Seite erfolgreich betreiben will, um damit Geld zu verdienen oder (hochwertige) Informationen zu verteilen, muss zumindest die zwei elementaren Funktionsgrundlagen einer Webseite kennen oder kennen lernen: Die Datenbank und einen Webserver.
Wer mit diesen Komponenten nicht ansatzweise umgehen kann, kann auch nur bedingt erfolgreich eine Webseite führen. Spätestens wenn WordPress Backups eingespielt werden müssen, weil die Webseite in die Grütze gefahren ist, muss man sich mit diesen Techniken auseinandersetzen oder einen Spezialisten anheuern, der natürlich teures – und gerechtfertigtes – Geld dafür kassiert. Denn logischerweise funktioniert das bequeme Backup-Plugin nicht mehr, wenn die Seite offline und nicht mehr erreichbar ist.
Nebenbei stellen derartige Plugins ein weiteres Sicherheitsrisiko dar. Denn die Plugins nutzen sensible Datenbankinformationen für den Lese- und Schreibzugriff auf die Datenbank oder die Webserver-Verzeichnisse. Nicht selten ist eine Anpassung der Dateirechte nötig, damit die WordPress Backups von den installierten Plugins automatisiert ausgeführt werden können. Diese umfangreichen Plugins zerren oftmals an der WordPress Performance und machen die Webseite langsam und sehr träge.
Also machen wir das Ganze direkt richtig. Und zwar via FTP und phpMyAdmin.
WordPress Backups über FTP Client
Für den Zugriff auf den Webserver via FTP (File Transfer Protocol) ist ein FTP Client wie FileZilla nötig. Nach der Installation auf dem System kann man einen Zugang zum Webspace durch die Eingabe der vom Hoster bereitgestellten Zugangsdaten einrichten. Im Regelfall stellt jeder Hoster eine geeignete Anleitung für die Anmeldung via FTP am Webserver zur Verfügung. Für unseren Hosting-Partner All Inkl findest du eine Anleitung für die FTP-Verbindung*.
Nach der Verbindung erreicht man das Root-Verzeichnis des eigenen Webspace (≠ Server-Root). Hier sind i.d.R. die registrierten Domains als Subverzeichnis aufgelistet: Hier als Beispiel
- domain1.com
- domain2.com
- domain3.net
Wollen wir nun sämtliche Daten der Domain 1 sichern, müssen wir lediglich den Ordner markieren und per Drag&Drop in ein geeignetes Verzeichnis auf der lokalen Festplatte ziehen. Letzteres kann standardmäßig im linken Fenster aufgerufen werden. Hier sollte direkt mit einer nachvollziehbaren Verzeichnisstruktur gearbeitet werden (z.B. Backups / Backup Domain 1 Datum XY), damit man später nicht im Datenchaos untergeht:
Dieser Vorgang lädt die vollständigen Inhalte der Domain 1 auf die lokale Festplatte des Client-PCs. Das umfasst auch Log-Files, Cache oder Konfigurationsdateien. Je nach Umfang der Logs kann das den Datenübertragungsprozess erheblich verlängert. Wer darauf verzichten will, kann lediglich das Verzeichnis /domain1.com/Wordpress übertragen, wie hier im Beispiel zu sehen:
Das war prinzipiell schon alles. Hat der FTP-Client die gesamte Warteschlange aller Dateien abgearbeitet und vollständig auf die lokale Festplatte übertragen, war das Backup erfolgreich. Das Ganze kann natürlich auch mit einzelnen Dateien erfolgen, wenn ein Backup vor kleineren manuellen Änderungen am Quellcode erfolgen und nicht das ganze Verzeichnis gesichert werden soll.
Insbesondere Online-Shops mit vielen Bildern und automatisch generierten PDF-Rechnungen (oder Angeboten bzw. Lieferscheinen) können viele Gigabyte groß werden und nehmen dann mehrere Stunden für die komplette Datensicherung in Anspruch.
In exakt andere Richtung erfolgt die Einspielung eines Backups. Hier wird grundsätzlich nur die Ursprungsdatei von der linken Seite (Backup-Ort) auf den Webspace transferiert (rechte Seite) und jede Datei entsprechend der Warteschlange ersetzt.
Mit etwas Routine gelingt die Arbeit im FTP-Client wie von selbst und die WordPress Backups werden zum Kinderspiel. Grund genug, um uns nun der Datenbank zuzuwenden.
MySQL-Datenbank über phpMyAdmin sichern
Zum vollständigen Backup fehlt noch der zweite Teil: die MySQL-Datenbank. Dazu müssen wir uns lediglich über den Verwaltungs-Account unseres Hosters anmelden und den Datenbankzugriff mit phpMyAdmin öffnen. Bei unserem Hoster All-Inkl.com* läuft das entsprechend simpel ab – ein Klick auf das doppelte Client-Symbol reicht hier bereits aus.
Nach dem Klick auf den phpMyAdmin-Login öffnet sich das Datenbankverwaltungssystem in einem neuen Fenster:
Wir lassen uns nicht von den angezeigten Datenbanktabellen verwirren und navigieren in die Export-Funktion des Tools, wo wir den Export der Datenbank einleiten können („Exportieren„):
Wir können hier zwischen zwei Exportvarianten wählen:
- Schnell (einfach und vollständig, ohne Tabellenselektion oder erweiterte Einstellungen)
- Angepasst (mit weiteren Optionen und Tabellen-Selektion)
Für die vollständige Sicherung reicht die Export-Option „Schnell“ im SQL-Format:
Falls gewünscht, kann auch die angepasste Exportfunktion genutzt werden. Für ein vollständiges Backup aller Tabellen ist diese Funktion aber nicht nötig.
Das Ergebnis der Exports ist eine SQL-Datei, die wie ein konventionelles Dokument über die Download-Funktion des Browsers heruntergeladen wird. Wie lange das dauert, hängt in erster Linie von der Größe der Datenbank und der Downloadgeschwindigkeit ab. Die meisten WordPress-Datenbanken weisen eine Dateigröße von 20-200mb auf und sind in wenigen Minuten vollständig heruntergeladen.
Das Einlesen einer Datenbank im SQL-Format kann analog über die Importieren-Funktion ausgeführt werden. Hier sind aber noch weitere Dinge zu beachten, weshalb wir das Importierten von MySQL WordPress Backups in einem separaten Artikel behandeln.
Falls du von einer professionelle Datensicherung profitieren möchtest, kannst du alternativ auch unseren WordPress Backup Service in Anspruch nehmen. Damit übernehmen wir die täglichen oder wöchentlichen Backups von MySQL-Datenbank und Webspace-Verzeichnissen automatisiert auf unserem Backup-System in Deutschland.