Mit WordPress auf neuen Webspace umziehen

Aus verschiedenen Gründen muss gelegentlich der Webspaceanbieter gewechselt werden. Im Gegensatz zu anderen CMS- oder Bloggingsystemen, ist der Umzug mit WordPress ein Klacks. Dennoch gibt es einige Dinge zu beachten.

WordPressdateien übertragen

Als Erstes müssen die Dateien des Blogs, die auf dem Webspace liegen vom alten Webspace heruntergeladen und auf den neuen hochgeladen werden. Da sich bei einem Webspacewechsel die Zugangsdaten für die Datenbank und der Datenbankname selbst ändern, müssen diese Dinge in der „wp-config.php“ im WordPressverzeichnis auf dem Webspace geändert werden. Damit künftig wieder Bilder hochgeladen werden können und das Update von WordPress und den Plugins nicht fehlschlägt, müssen noch die Verzeichnisse „themes“, „plugins“, „uploads“, die sich innerhalb des „wp-contents“-Verzeichnisses befinden, Schreibrechte (777) erhalten.

Datenbank exportieren

Als Nächstes folgt das Backup der Datenbank. Das geschieht entweder per phpMyAdmin oder ähnlichen Tools oder mit BackWPup, einem WordPress-Sicherungs-Plugin, das meiner Meinung nach sowieso regelmäßige Backups vom Blog machen sollte.

Datenbank importieren

Nachdem die Datenbank gesichert ist, kann sie auf dem neuen Webspace per phpMyAdmin eingespielt werden. Dazu links einfach auf die entsprechende Datenbank klicken und rechts „Importieren“ wählen. In der Regel reicht es aus, die Einstellungen so zu belassen, wie sie sind, die gesicherte Datenbankdatei auszuwählen und die Daten mittels „OK“ in die neue Datenbank zu importieren.

Änderungen an der Datenbank

Sollte sich nach dem Umzug die URL zu WordPress geändert haben (z. B. weil das Blog jetzt nicht mehr in einem Unterverzeichnis, sondern in oberster Ebene steht), dann müssen noch zwei Pfade in der „wp_options“-Tabelle geändert werden. Nämlich „siteurl“ und „home“.

Dateipfade Suchen und Ersetzen

Wenn sich die URL zum Blog geändert hat, müssen jetzt noch die Pfade zu den hochgeladenen Dateien und ggf. intern verlinkten Artikeln geändert werden. Das kann mittels SQL-Befehl direkt in phpMyAdmin geschehen. Der passende MySQL-Befehl zum Suchen und Ersetzen sieht so aus:

UPDATE tabelle SET spalte = REPLACE(spalte, 'suche nach', 'ersetze mit');

Wer sich da nicht ran traut, kann die Pfade auch einfacher per WordPress-Plugin ersetzen. Dazu ist das Plugin „Suchen & Ersetzen“ von Frank Bültge notwendig. Das arbeitet nur mit den Standardtabellen von WordPress.

Wer nicht sicher ist, ob er alle URLs geändert hat, kann das Plugin „Broken Link Checker“ installieren, was regelmäßig alle im Blog verstreuten URLs auf Gültigkeit überprüft.

Abschlussarbeiten

Jetzt ist der Umzug im Wesentlichen abgeschlossen. Wenn die sprechenden URLs nicht funktionieren, muss die Datei „.htaccess“ im WordPressverzeichnis ebenfalls Schreibrechte erhalten.

Automatisches Backup vom Webspace

Gerade durch den Ausfall eines meiner Server in den letzten Tagen ist mir wieder sehr bewusst geworden, wie wichtig Backups sind. Meist merkt man das ja erst, wenn sie gerade nicht da sind.

Hier auf dem Blog läuft beispielsweise wöchentlich ein Datenbankbackup, was mir automatisch zugemailt wird. Trotzdem ist es wichtig, auch die Dateien hier auf dem Webspace zu sichern. Das wären die Plugins oder das Theme oder ganz wichtig die Bilder.

Natürlich kann man das von Hand machen, aber viel bequemer ist es doch, wenn man das automatisieren kann. Also habe ich in den letzten Tagen x Programme ausprobiert und gesucht und getestet. Auf dem Freeware und Open Source-Sektor gibt es ganz wenige Programme, die ein automatisches Backup von einem FTP-Server machen. Um genau zu sein, gibts scheinbar nur eins: WebSynchronizer.

Das englichsprachige Programm liegt in Version 1.5 vor und wird wohl seit Anfang 2007 nicht weiterentwickelt. Aber es macht seine Sache sehr gut. Und das ist vorallem das Synchronisieren zwischen zwei Verzeichnissen, die wahlweise lokal auf dem Rechner liegen können oder auch auf dem FTP-Server.

Welche Einstellungen man setzen muss, wenn man den eigenen Webspace regelmäßig sichern will, beschreibe ich jetzt mal:

  • zunächst muss mittels „Add Task“ ein neuer Task (eine Aufgabe) angelegt werden
  • im Dialog wählt man nun „Local computer folder and remote folder“
  • im nächsten Fenster dann den ersten Punkt: „(Synchronize) Synchronization on both or one direction“
  • anschließend wird der Pfad eingegeben, wohin der Inhalt des Webspaces gesichert werden soll
  • im nächsten Fenster wird das FTP-Verzeichnis angegeben. Zu diesem Zwecke wählt man „Servers list“, um einen Zugang anzulegen. Bei „File operations“ wählt man „Do not change content of the folder, download newest files“ aus, damit immer nur die neuesten Dateien auf dem Webspace heruntergeladen werden
  • Zum Schluss bekommt der Task noch einen Namen und mit „Fertig stellen“ ist er in der Liste drin

Jetzt kann dieser Task gestartet werden und zwar über „Synchronize“ aus der Symbolleiste. Wählt man „Tasks > Advanced actions > Preview“ aus der Menüleiste aus, so schaut das Programm zunächst auf dem Webspace nach, ob sich was geändert hat und zeigt diese Änderungen nur an. Als Nebeneffekt bekommt man so auch eine Übersicht, wieviele Daten in MB auf dem Webspace liegen. Danach kann der Synchronisierungsvorgang gestartet oder abgebrochen werden.

Mithilfe eines Zeitplaners (Scheduler) kann jeder Task um eine bestimmte Uhrzeit ausgeführt werden. Es ist auch möglich festzulegen, ob der Task täglich oder nur alle paar Tage ausgeführt wird. Damit das funktioniert, muss das Programm allerdings die ganze Zeit laufen. Man kann es mit Windows automatisch mitstarten lassen, aber eleganter ist es, wenn man es über den windowseigenen Taskplaner aus der Systemsteuerung kurz vor Ausführung der Tasks starten lässt. Dann würde es beispielsweise um 19:59 Uhr starten und um 20:00 Uhr mit der Synchronisierung beginnen.

Noch ein paar Hinweise:

Wenn der Webspace über ein „httpdocs“-Verzeichnis verfügt, muss in den Servereinstellungen dieses Verzeichnis unter „Adress“ mit angegeben werden. Hier mal ein Beispiel: ftp://domain.de/httpdocs

Man kann auch mehrere Tasks gleichzeitig über den Scheduler starten.

Damit die Synchronisierung reibungslos klappt, wird in jedem Root-Verzeichnis eine XML-Datei namens „WebSynThunk.xml“ angelegt.