Umzug einer WordPress Installation

Umzug einer WordPress Installation

Die WordPress Installation ist nun fertig, vom Kunden abgenickt und soll jetzt in das Root-Verzeichnis auf dem Kundenserver. Im folgenden Beispiel berschreibe ich den Umzung einer WordPress-Installation von http://alte-domain.net/dev nach http://neue-domain.de.

Um eine komplette WordPress Installation umzuziehen, müssen wir sowohl alle Dateien als auch die Datenbank auf den neuen Server kopieren und der Installation dann beibringen, dass sie fortan woanders liegt.

Umzug der WordPress Dateien

In unserem Beispiel laden wir uns alle Dateien aus dem Unterverzeichnis /dev auf von unserem alten Server (http://alte-domain.net) per FTP auf unsere Festplatte herunter.

Ist der Download abgeschlossen, können wir uns mit unserem neuen Server (http://neue-domain.de) per FTP verbinden und die Dateien dort (wie in unserem Beispiel gefordert) in Root-Verzeichnis hochladen.

Anmerkung:

Sollte der Umzug auf demselben Server stattfinden, kann man die Dateien auch per WebFTP (wird von manchen Providern angeboten) von dem Start- in das Zielverzeichnis bewegen oder kopieren. Das geht wesentlich schneller als per FTP-Down- und Upload.

Umzug der WordPress Datenbank

Um unsere WordPress Datenbank übernehmen zu können, müssen wir diese zunächst von dem alten Server exportieren, um eine .sql-Datei (zip-, gzip-, bzip- oder unkomprimiert) auf unserer Festplatte abspeichern zu können.

In den meisten Fällen steht uns zur Administration unserer Datenbanken phpMyAdamin zur Verfügung. Im phpMyAdmin wählen wir die entsprechende Datenbank aus, klicken auf den Exportieren-Tab, machen dort unsere Einstellungen und beginnen mit dem Export (s. a. deutsche WordPress Doku).

Der nächste Schritt ist der Import der Datenbank auf dem neuen Server. Hierfür sollten wir uns bereits eine neue Datenbank auf dem neuen Server eingerichtet haben. Diese wählen wir im phpMyAdmin aus und klicken auf den Importieren-Tab, wählen die .sql-Datei aus und klicken auf OK. Der Import der Datenbank wird nun durchgeführt. Danach sollte die Struktur der Datenbank genauso aussehen wie die alte vom unserem alten Server.

Anpassung der wp-config.php

Der Großteil unseres Umzuges ist nun geschafft. Wir haben die Dateien und die Datenbank. Wir müssen WordPress jetzt noch sagen, dass es die Datenbank des neuen Servers nutzen soll.

Hierfür öffen wir die schon bekannte wp-config.php und machen dort unsere Einstellungen für die Datenbank

// ** MySQL settings ** //
define('DB_NAME', 'putyourdbnamehere');    // The name of the database
define('DB_USER', 'usernamehere');     // Your MySQL username
define('DB_PASSWORD', 'yourpasswordhere'); // ...and password
define('DB_HOST', 'localhost');    // 99% chance you won't need to change this value

Anpassung der WordPress Datenbank

Ein sehr wichtiger Schritt fehlt jetzt noch. Und zwar steht in den WordPress Einstellungen, die wiederum in der Datenbank gespeichert sind, immer noch unsere alte Domain http://alte-domain.net/dev. Außerdem speichert WordPress bei vielen Aktionen eine URL ab (z. B. bei Posts und Uploads). Auch bei dem Einsatz mancher Plugins werden URLs abgespeichert.

An all diesen Stellen haben wir jetzt noch die alte URL des alten Servers (http://alte-domain.net/dev) stehen.

An welchen Stellen genau diese noch vorkommt, finden wir am leichtesten über die Suche heraus. Wir wählen also die Datenbank aus und klicken auf den Suche-Tab. In das Eingabefeld geben wir unsere alte URL http://alte-domain.net/dev ein, wählen alle Tabellen aus und klicken auf OK.

Achtung! Im folgenden nehmen wir Änderungen an der Datenbank vor. Behalte also unbedingt die .sql-Datei als Backup, falls etwas schiefgehen sollte.

Das Suchergebnis zeigt uns, in welchen Tabellen wir die alte URL gegen die neue austauschen müssen. Um nun nicht jeden Datensatz einzeln öffnen zu müssen, machen wir das tabellenweise mit Suchen & Ersetzen mit foldendem SQL-Befehl:

UPDATE tabellenname SET feldname = 
REPLACE(feldname, suchstring, ersatzstring);

Tabelle wp_options

Am wichtigsten ist zunächst die Tabelle wp_options. Dort wird WordPress bspw. mitgeteilt, welche die Site-URL ist.

UPDATE wp_options SET option_value = 
REPLACE(option_value, 'http://alte-domain.net/dev', 'http://neue-domain.de');

Tabelle wp_posts

Die URL kommt außerdem in der Tabelle wp_posts vor (Spalte post_content und guid)

UPDATE wp_posts SET post_content = 
REPLACE(post_content, 'http://alte-domain.net/dev', 'http://neue-domain.de');
UPDATE wp_posts SET guid = 
REPLACE(guid, 'http://alte-domain.net/dev', 'http://neue-domain.de');

andere Tabellen

Wie gesagt, kann die URL auch noch in weiteren Tabellen auftauchen. Das sehen wir jeweils an dem o.g. Suchergebnis. Wahrscheinlich ist auch ein Vorkommen in der Tabelle wp_postmeta in der Spalte meta_value und eventuell in den Tabellen von Plugins, die Du verwendest.

Fertig

Wenn wir uns durch alle Tabellen gearbeitet haben, ist die WordPress Installation komplett umgezogen. Wir freuen uns!

Tags: , ,

4 Kommentare zu Umzug einer WordPress Installation

[...] Weitere Anleitungen findet man auch bei Vladimir Prelovac (engl.) oder webdemar.com. [...]

[...] Ein Wordpress-Blog umzuziehen, ist im Übrigen gar nicht schwer. Wer sich dafür interessiert, sollte mal hier nachschauen. [...]

Julia
9. Dezember 2008

Danke! Das hat geklappt :-D

Webdesign Berlin
18. April 2009

Dank dieser ausführlichen Anleitung konnte ich mein Weblog bereits mehrfach auf eine andere Domain umziehen.

Gibt es eigentlich noch eine andere Möglichkeit die Datenbank zu sichern, außer über das Tool “phpMyAdmin”?

Sag Deine Meinung!

Für das Hosten von WordPress Blogs empfehlen wir Webspace von Hostloco. Für alle Schweizer: Kourtis-Solutions.ch.

Sciabb sagt zu Display Recent Posts without Plugin:
Where do you exactly place the code $recent = new WP_Query(”showposts=5&...

Meg Stefani sagt zu WordPress Theme deFusion 0.8:
The Theme looks great....

Pickle sagt zu Superfish jQuery Menu IE z-index Bug:
Good solution!!!! thx --- adding .sf-menu, .sf-menu * { z-index:...

Jared sagt zu Aktuelle Kategorie in der Post-Einzelansicht hervorheben:
Ja so ungefähr habe ich es bei mir auch gemacht. Nur den Home Button habe i...

Simon [webdemar] sagt zu Aktuelle Kategorie in der Post-Einzelansicht hervorheben:
@Jared Den Code habe ich in der Zwischenzeit auch erweitert. Das könnte ...