Komm zur dunklen Seite der Macht, wir verwenden Cookies! Alles zum Datenschutz findest du hier: Datenschutz.

WordPress zu einer neuen Domain umziehen

Als WordPress Entwickler steht man des öfteren vor dem Problem dass man eine WordPress Installation auf einen neuen Server umziehen muss. Oft ist es dann so, dass der neue Server andere Einstellungen hat, als der auf dem das WordPress initial eingerichtet/betrieben wurde. In meinem Fall entwickle ich Plugins/WordPress Seiten auf einem Entwicklungsserver und von da aus bewege ich dann das gesamte WordPress Projekt auf den Webserver des Kunden. Im Falle von WordPress (ohne Plugins, wie zum Beispiel den Revolution Slider, zu berücksichtigen) reicht es dabei wie folgt vorzugehen:

DEV Server

  • FTP Backup aller Dateien (am wichtigsten wp-content/)
  • Export MySQL Backup
  • In wp-config.php neue Datenbank Daten eintragen

LIVE Server

  • Upload per FTP Dateien
  • Import MySQL Backup
  • In der Datenbank die Tabellen wp_options, wp_postmeta und wp_posts Domains und E-Mail Adressen ersetzen
  • WP Admin -> Einstellungen -> Allgemein -> Speichern drücken um die siteurl überall bekannt zu machen
  • WP Admin -> Einstellungen -> Permalinks -> Speichern drücken um die Permalinks zu aktualisieren
  • Bild- und Dateilinks innerhalb von Posts korrigieren per SQL Query:
# Neue Domain fuer Home und Siteurl
UPDATE wp_options SET option_value = REPLACE(option_value, 'subdomain.webchef.de', 'www.neuedomain.de');

# Update Admin E-Mail
UPDATE wp_options SET option_value = 'neuerAdmin@domain.de' WHERE option_name = 'admin_email';

# Core Update E-Mail Adresse ersetzen
UPDATE wp_options SET option_value = REPLACE(option_value, 'alt@domain.de', 'neu@domain.de') WHERE option_name = 'auto_core_update_notified';

# Domain in Meta Daten ersetzen
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'subdomain.webchef.de', 'www.neuedomain.de');

# Domain im Content ersetzen
UPDATE wp_posts SET post_content = REPLACE(post_content, 'subdomain.webchef.de', 'www.neuedomain.de') WHERE post_type = 'post';

# Domain in den Dateianhaengen und Post Types ersetzen
UPDATE wp_posts SET guid = REPLACE(guid, 'subdomain.webchef.de', 'www.neuedomain.de');

Fertig.

Dann bist du auf jeden Fall schon mal safe, was den Umzug von WordPress angeht.

Kleiner Tip falls du Umlaute in Dateianhängen, in der Datenbank ersetzen willst, dann kannst du mit folgender SQL die Einträge identifizieren:

SELECT * FROM wp_postmeta WHERE meta_key = '_wp_attached_file' AND meta_value LIKE ('%ä%' COLLATE utf8_bin);

Voraussetzung ist dass bei der Datenbank der Zeichensatz UTF-8 Unicode bzw. utf8mb4 gesetzt ist! Wenn du die Dateinamen der Anhänge in der Datenbank änderst, musst du die entsprechenden Dateinamen natürlich auch im wp-content/uploads/ Ordner anpassen! Sonst findet WordPress die Dateien nicht mehr!

Plugins

Jetzt ist das Problem dass eigentlich so ziemlich kein WordPress ohne Plugins auskommt. Und manche komplexeren Plugins, wie zum Beispiel der RevolutionSlider, legen eigene Tabellen in der Datenbank an. In diesen Tabellen werden auch Datensätze angelegt in denen eure Domain ersetzt werden müssen!

Ich gehe dann so vor:

  • per SQL herausfinden ob es Einträge mit dem alten Domainnamen gibt
  • wenn ja, dann ersetze ich sie wie oben beschrieben per UPDATE/REPLACE Befehl in der Datenbank