WordPress umziehen

Es gibt einige Gründe, warum man seine WordPress-Seite umziehen will. So bekommst du deine Seite von A nach B, ohne dass Daten und Einstellungen verloren gehen.

Das Problem ist dann stets, die Daten von A nach B zu bekommen. Der einfachste Weg wäre natürlich, einfach die Dateien vom FTP-Server herunterzuladen und auf den neuen FTP-Server wieder hochzuladen. So einfach ist das allerdings nicht.

Denn die eigentlichen Daten, also die Posts und Seiten, die du erstellt hast, liegen nirgendwo in Form einer Datei herum. Alles das liegt in einer Datenbank, auf die du über einen FTP-Zugang keinen Zugriff hast. Neben den eigentlichen Dateien der Webseite, muss also auch irgendwie die Datenbank übertragen werden. Dazu gibt es verschiedene Möglichkeiten.

WordPress Export

(picture: von-a-nach-b.png alt: von a nach b)

WordPress bietet die Möglichkeit an, Daten zu exportieren. Diese Daten können dann in eine neue WordPress-Installation wieder importiert werden. Das funktioniert gut, wenn man nur darauf angewiesen ist, Artikel, Seiten und ein paar grundlegende Einstellungen übertragen zu müssen. Das Problem hierbei ist allerdings, dass u.U. nicht alle Einstellungen übernommen werden.

Manche Plugins und Themes legen selber noch Einstellungen in der Datenbank ab, die auf diesem Wege nicht übertragen werden und dann mühsam, Schritt für Schritt, wiederholt eingestellt werden müssen.

Diese Methode funktioniert also wirklich nur, wenn man nur die eigentlichen Inhalte übertragen möchte, der Rest aber egal ist.

Die Datenbank exportieren

Über ein Tool wie phpMyAdmin ist es möglich, die gesamte Datenbank zu exportieren. Die meisten Hoster bieten dir Zugriff auf phpMyAdmin an. Häufig findest du diese Möglichkeit im Adminbereich deines Hosters, dort wo du auch Datenbank anlegen und verwalten kannst.

In phpMyAdmin ist es dann möglich eine Datenbank auszuwählen und diese zu exportieren. Erzeugt wird eine SQL-Datei. WordPress benötigt eine MySQL-Datenbank und SQL ist quasi die Datenbanksprache, die dahinter steckt. Die SQL-Datei, die nun exportiert wird, beinhaltet etliche Befehle, die eine exakte Kopie der Datenbank erzeugen.

Zusammen mit den Dateien, die du via FTP übertragen hast, kannst du nun die besagte SQL-Datei beim neuen Hoster wieder importieren und hast eine exakte Kopie deiner Seite.

Das Problem

Das funktioniert allerdings nur soweit gut, wie sich Domains und Pfade nicht groß ändern.

WordPress hat die Eigenheit, sämtliche Links - und zwar auch interne - und Verknüpfungen zu Bildern nicht als relative Pfade abzuspeichern, also z.b. /wp-content/uploads/meinbild.jpg sondern als komplette URL z.b. http://www.meinblog.de/wp-content/uploads/meinbild.jpg. Das hat zur Folge, dass beim Wechseln einer Domain auf einmal sämtliche Bilder zerschossen sind, CSS-Dateien nicht geladen werden können und und und.

Abhilfe schafft an dieser Stelle dann das gute alte „Suchen und Ersetzen“, das kannst du direkt in der SQL-Datei machen. Dazu öffnest du die Datei, die du exportiert hast in einem Editor wie Sublime Text oder Atom. Es muss etwas in der Art sein, ein normaler Editor wie Textedit oder Pages funktioniert nicht, der wird dir die Datei kaputt formatieren.

Nun kannst du mittels der „Suchen und Ersetzen“ Funktion die URLs ändern. Du suchst also nach der alten Domain und ersetzt diese durch die neue. Abspeichern und dann beim neuen Hoster importieren.

Damit solltest du kein Problem mehr mit Bildern, CSS-Dateien und so haben.

Wenn du dir das selber nicht zutraust, die SQL-Datei zu bearbeiten, kannst du auch ein Plugin nutzen, z.b. „Better search and replace“ was genau diese Aufgabe übernimmt.

Das nächste Problem

Weil das alles ja so viel zu einfach wäre, gibt es noch ein weiteres Problem. Manche Plugins und Themes neigen dazu, ihre Einstellungen eben nicht einfach nur normal abzulegen. Der Zugriff auf die Einstellungen läuft dann über die Domain als Schlüssel. Aus der Domain wird ein eindeutiger Hash erzeugt, über den dann auf die Einstellungen zugegriffen wird.

Das Problem: Die Domain steht damit nicht im Klartext in der Datenbank und unser eben erwähntes Suchen und Ersetzen greift an der Stelle nicht.

Manche Plugins escapen die Domains auch, was zum gleichen Effekt führt. Die Domain wird also nicht einfach 1:1 in die Datenbank geschrieben, sondern deren Sonderzeichen, wie der Schrägstrich, Doppelpunkte, Punkte und so weiter werden gegen bestimmte Zeichenfolgen ausgetauscht. Gleiches Problem: Auch hier greift unser Suchen und Ersetzen nicht.

Das hat zur Folge, dass zwar alle Bilder und so weiter geladen werden können, aber Plugins und Themes auf einmal ihre gesamten Einstellungen verlieren. Die Domain hat sich ja geändert und nun versuchen sie die Einstellungen unter dem falschen Domain-Hash zu suchen und die gibt es dann nicht.

Die All-In-One-Lösung

Wie man sich vorstellen kann, ist das ein gängiges Problem. Gerade wenn man als Entwickler vielleicht irgendwo auf einem Testserver Seiten für Kunden entwickelt und diese dann live gehen sollen. Dann ändert sich jedes Mals die Domain.

Ein paar schlaue Menschen haben sich also überlegt, dafür ein Plugin zu schreiben, welches ich dir hiermit ans Herz legen möchte. Das Duplicator Plugin.

Du installierst es zunächst im bisherigen Blog und aktivierst es dort. Dann kannst du ein Paket erzeugen. Erstellt wird eine ZIP-Datei und eine PHP-Datei, die alle nötigen Daten enthält, auch die Datenbank.

Beim neuen Hoster lädst du dann nur diese beiden Dateien hoch, du brauchst vorher WordPress gar nicht zu installieren. Anschließend rufst du unter der neuen Domain die installer.php auf und wirst du das Setup geführt. Hier musst du nur noch einmal die neuen Zugangsdaten zur Datenbank angeben und festlegen, wie die neue Domain lauten wird. Meist wird letzteres schon automatisch erkannt.

Ein Klick sorgt dann dafür, dass die ZIP-Datei entpackt wird. Die Datenbank wird importiert und alle URLS, Hashes und Co werden auf die neue Domain umgestellt. Nach wenigen Minuten ist das Tool fertig und eine 1:1 Kopie liegt beim neuen Hoster.
In 95% aller Fälle funktioniert die Webseite damit sofort einwandfrei. In seltenen Fällen muss man doch noch mal nachjustieren.

Im Übrigen empfiehlt sich das Plugin auch, um hin und wieder mal eine Sicherung zu machen. Die normale Version ist kostenlos, die Pro-Version bietet weitere Möglichkeiten, wie automatische, regelmäßige Sicherungen.