Backup und Umzug

Die Daten euere Webseiten solltet ihr regelmässig sichern. Vor allem wenn ihr eure Seiten lokal auf einem Raspberry mit SD-Karte erstellt.

Backup der Webseiten

Aber was genau müsst ihr sichern?

Webseiten, die mit WordPress erstellt wurden, bestehen zum einem aus den WordPress-Programm-Dateien (wie z.B. den Plugins, Widgets, Themes, …) und einem Upload-Bereich für Medien (Bilder, Videos, …). All das befindet sich in dem installierten WordPress-Verzeichnis (im vorherigen Beispiel: yourwordpress).

Der Inhalt der Seiten (Texte, Blog-Inhalte, …) befindet sich dagegen in der mySQL-Datenbank. Für einen Backup müsst ihr also sowohl den Inhalt euerer WordPress-Installation als auch den Inhalt euerer WordPress-Datenbank des entsprechenden Datenbank-Benutzers sichern.

Eure aktuelle WordPress-Installation sichert ihr am besten mit einem FTP-Client, wie z.B. FileZilla, auf den lokalen Rechner oder auf eine externe Festplatte. Habt ihr einen SSH-Zugang (beim Raspberry Pi geht das standardmäßig. Ob das euer Internet-Provider anbietet, müsst ihr schauen) könnt ihr vor der Übertragung mit dem FTP-Client das WordPress-Verzeichnis euerer aktuellen WordPress-Installation z.B. mit ZIP packen:

zip -r mywordpress mywordpress.zip

Dadurch lässt sich die Sicherung schneller durchführen, da WordPress aus sehr sehr vielen Dateien bestehen kann.

Alternativ könnt ihr am Raspberry natürlich auch einen USB-Stick oder eine externe Festplatte anschließen und die WordPress-Installation per cp-Befehl dorthin kopieren.

Den Inhalt der Datenbank sichert ihr am besten mit phpMyAdmin über die Option Export. Hierzu meldet ihr euch entweder als root-Benutzer oder mit eurem WordPress-Datenbank-Benutzer an und wählt die zu exportierende Datenbank aus:

Export einer Datenbank

Export einer Datenbank

Als Export-Format eignet sich das voreingestellte SQL-Format. Damit später der Import auch bei bereits bestehenden Tabellen funktioniert, solltet ihr unter Art des Exports die Option Angepasst auswählen. Weiter unten setzt ihr dann das Häckchen bei Drop Table. Dadurch werden beim Import die Tabellen zuerst gelöscht, falls sie schon vorhanden sind.

Falls ihr bei eurem Provider andere User-Namen für WordPress oder der  Datenbank verwendet, solltet ihr beim Export die beiden Tabellen prefix_usermeta und prefix_users, im Abschnitt Tabelle, vor dem Export abwählen.

Restore im Falle eines Crash

Schlägt Murphy zu und eure Webseiten oder eure WordPress-Datenbank geht kaputt, könnt ihr die Sicherungen einfach wieder zurück laden.

Die gesicherte WordPress-Installation kopiert ihr z.B. mit einem FTP-Client von eurem Sicherungs-Medium wieder auf den Raspberry Pi oder auf den Server eures Internet-Providers.

Die Datenbank importiert ihr danach mit Hilfe von phpMyAdmin über die Funktion Import. Dazu startet ihr phpMyAdmin im Web-Browser, wählt die Option Import, sucht die vorher exportierte SQL-Datei auf eurem Sicherungs-Medium und drückt OK. Damit wird der Inhalt der Sicherung wieder in die Datenbank übernommen.

Import einer Datenbank

Import einer Datenbank

Vom Raspberry Pi zum Internet-Provider umziehen

Irgendwann ist es soweit, die Seiten sehen alle gut aus, ihr seid zufrieden mit euren Seiten und möchtet nun alles ins Internet stellen.

Ihr könnt nun entweder den Raspberry Pi mit dem Apache-Server ins Internet stellen oder nutzt den Server eines Internet-Providers mit eurem eigenen Domäne-Namen.

Ich hab mich für einen richtigen Provider entschieden. Das hat den Vorteil, dass man hier eine Domäne al’a www.das.ist.mein.internetauftritt bekommt und zudem die Seiten auch vom Provider gegen Attacken abgesichert werden.

Zudem eignet sich der Raspberry Pi, von der Rechenleistung her, nicht unbedingt als Web-Server, wenn viele Benutzer gleichzeitig auf eure Seiten zugreifen.

Von Vorteil ist natürlich ein Internet-Provider, der WordPress unterstützt und eine Möglichkeit bietet, WordPress einfach zu installieren, sowie Updates und Sicherheits-Patches automatisch durchführt.

Bei der folgenden Beschreibung des Umzugs eurer Webseiten vom Raspberry Pi zu eurem Internet-Provider, gehe ich von folgenden Voraussetzungen aus, die euer Internet-Provider erfüllen muss:

  • WordPress wird unterstützt und ist installiert
  • FTP-Verbindung mit dem Provider-Server ist möglich
  • Ein Import der Datenbank für WordPress ist möglich (z.B. über phpMyAdmin)

Zuerst solltet ihr eine Sicherung einer eventuell bestehenden WordPress-Installation und Datenbank bei eurem Internet-Provider durchführen:

  • Sicherung der WordPress-Dateien mittels FTP-Client
  • Export der Datenbank z.B. mit phpMyAdmin

Bevor ihr die WordPress-Dateien vom Raspberry Pi in das WordPress-Verzeichnis auf euren Provider-Server kopiert oder den Inhalt des WordPress-Verzeichnis löscht, sollte ihr auf jeden Fall folgende drei Dateien im WordPress-Verzeichnis bei eurem Internet-Provider einzeln sichern:

  • wp-config.php – Hier ist u.a. die Datenbankverbindung zur Internet-Provider-Datenbank für WordPress konfiguriert
  • .htaccess – Provider-Spezifische Konfiguration für den Webserver
  • php.ini – Provider-Spezifische Konfiguration für die PHP-Installation

Danach geht es mit folgenden Schritten los:

  • Zuerst löscht ihr den Inhalt eines eventuell bestehenden WordPress-Verzeichnis.
  • Danach kopiert ihr mit einem FTP-Client die WordPress-Installation vom Raspberry Pi auf den Server eures Internet-Providers in das bestehende WordPress-Verzeichnis.
  • Falls ihr bei eurem Internet-Provider andere User-Namen für WordPress oder der Datenbank verwendet, müsst ihr eventuell mit einem Text-Editor im exportierten SQL-File vor dem Import den nice_name aus der Tabelle prefix_users mit der Suchen/Ersetzen-Funktion austauschen. Den nice_name eures Datenbank-Users seht ihr z.B. mit phpmyadmin, wenn ihr die Tabelle prefix_users anklickt.
  • Dann importiert ihr die Datenbank, die vom Raspberry Pi exportiert wurde, in die WordPress-Datenbank bei eurem Internet-Provider (z.B. mit phpMyAdmin und der Option Import).

Zum Schluss müsst ihr noch alle Referenzen und Links in der Datenbank anpassen. Das muss aus folgendem Grund geschehen:

Auf dem Raspberry Pi lautet eine URL z.B. http://raspberry/yourwordpress/seite1

Habt ihr aber z.B. die Domäne http://meine.webseite.de, muss die URL beim Provider korrekterweise http://meine.webseite.de/seite1 lauten. D.h. es müssen alle Links mit dem Namen http://raspberry/yourwordpress ersetzt werden durch euren Domänen-Namen http://meine.webseite.de.

Das lässt sich über zwei einfache SQL-Befehle erledigen, die ihr z.B. in phpMyAdmin ausführen könnt:

update yourprefix_posts set post_content = 
  replace(post_content, 
          'http://raspberrypi/yourwordpress', 
          'http://meine.webseite.de');
update yourprefix_posts set guid = 
  replace(guid, 
          'http://raspberrypi/yourwordpress', 
          'http://meine.webseite.de');
update yourprefix_options set option_value = 
  replace(option_value, 
          'http://raspberrypi/yourwordpress', 
          'http://meine.webseite.de');
update yourprefix_postmeta set meta_value = 
  replace(meta_value, 
          'http://raspberrypi/yourwordpress', 
          'http://meine.webseite.de');

Achtet auch hier wieder bei der Eingabe darauf, die einfachen Anführungsstriche zu verwenden. Den Domänen-Namen http://meine.webseite.de müsst ihr durch euren eigenen Domänen-Namen ersetzen.

Danach meldet ihr euch zur Sicherheit in WordPress als Administrator an und betätigt einmal unter Einstellung -> Permalink den Button  Speichern.

Je nachdem, welches Theme ihr für eure Webseiten verwendet, kann es notwendig sein die eine oder andere Theme-Spezifische Einstellung zu anzupassen.