Grundlegendes zum Umzug einer WordPress-Seite
WordPress macht es uns mit seiner Struktur recht leicht, eine Instanz von einem Server zu einem anderen zu migrieren.
Die ganzen Daten (Seiten, Beiträge, Einstellungen der Website) stecken in der Datenbank.
Unsere Medien (Bilder, Videos), das Theme und die verwendeten Plugins sind im wp-content Ordner abgelegt.
Wenn wir uns an ein paar Dinge halten, sind wir in weniger als einer Stunde fertig und können uns wieder um reizvollere Aufgaben kümmern.
Was brauchen wir zu Beginn?
Wie bei jedem anderen Umzug auch, ist es wichtig, bestimmte Vorkehrungen zu treffen, bevor wir beginnen können.
Zuerst müssen wir uns versichern, dass wir auf beiden Servern (in Folge als Zielserver für unseren neuen Server und Quellserver für unseren alten Server bezeichnet) SSH-Zugang haben.
Dann besorgen wir uns mittels phpMyAdmin oder vergleichbaren Programmen einen kompletten Export der Datenbank.
Auch die wp-config.php und die .htaccess Dateien laden wir uns lokal herunter. Die wp-config.php finden wir dabei entweder direkt im WordPress-Hauptverzeichnis, oder einen Ordner darüber.
WordPress am neuen Server installieren
Jetzt sind wir soweit, um auf unserem neuen Server, WordPress zu installieren.
Die meisten Hoster bieten standardmäßig eine 1-Click-Lösung in ihren Control Panels für WordPress an. Die Installation dauert dabei keine 5 Minuten. Wir müssen in der Regel auch keine Daten ausfüllen, weil wir ohnehin eine bestehende Datenbank einspielen. Und dabei überschreiben wir ohnehin alle Werte, die bei der Installation in der Datenbank landen. Auch hier laden wir uns die wp-config.php und die .htacces Dateien herunter.
Sollte es keine 1-Click-Lösung geben, dann müssen wir händisch die Daten über https://de.wordpress.org/download/ herunterladen und über ein FTP-Programm wie FileZilla auf unseren Server hochladen.
Daten kurz gegenchecken
Wir kontrollieren die wp-config.php und achten besonders auf den Table prefix.
Ohne den korrekten Wert findet WordPress in unserer Datenbank keine Einträge. In unserem Beispiel und standardmäßig eingestellt ist „wp_“.
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
Den Rest können wir vom neuen Server behalten. Die .htaccess dürfte in den meisten Fällen identisch sein. Dennoch schauen wir uns die Unterschiede genau an und passen diese entsprechend an.
wp-content Ordner kopieren
Jetzt loggen wir uns auf dem Quellserver per SSH ein und stoßen das Kopieren der notwendigen Daten vom alten Server an.
Hierfür verwenden wir das CL-Tool „rsync“ und schreiben:
rsync -atzP wp-content {name des ziel-accounts}@{domain des ziel-accounts}:{name des ziel-accounts}/wp-content
Dieser Befehl kopiert den ganzen wp-content Ordner auf unseren neuen Server. Sollte der Port für SSH nicht auf den Standard von 22 konfiguriert sein, benötigen wir noch die Option -e mit dem Zusatz ’ssh -p 222′ wobei die Zahl (222) der SSH-Port ist.
rsync -atzP -e 'ssh -p 222' wp-content {name des ziel-accounts}@{domain des ziel-accounts}:{name des ziel-accounts}/wp-content
Datenbank aktualisieren
Nun importieren wir noch die alte Datenbank mit phpMyAdmin oder vergleichbaren Programmen.
Wenn sich die Domain unserer Seite nicht ändert, war es das auch schon. Wir müssen lediglich die IP des Zielservers in den DNS-Einstellungen unseres Registrars ändern. Achtung: DNS-Änderungen können bis zu 24 Stunden dauern, bis diese aktiv sind.
Wenn unsere Seite allerdings unter einer neuen Domain abrufbar sein soll, dann müssen wir noch die alten Domaineinträge mit den neuen in der Datenbank austauschen. Hierfür können wir entweder mit einem Tool (z.B. mit https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ bzw. https://github.com/interconnectit/Search-Replace-DB) arbeiten, oder wir verwenden SQL-Befehle in phpMyAdmin.
Die SQL-Befehle für das Umschreiben der Domain:
UPDATE wp_options SET siteurl = REPLACE( siteurl, "olddomain.at", "www.newdomain.at" );
UPDATE wp_options SET home = REPLACE( home, "olddomain.at", "www.newdomain.at" );
UPDATE wp_postmeta SET meta_value = REPLACE( meta_value, "olddomain.at", "www.newdomain.at" );
UPDATE wp_posts SET post_content = REPLACE( post_content, "olddomain.at", "www.newdomain.at" );
UPDATE wp_posts SET guid = REPLACE( guid, "olddomain.at", "www.newdomain.at" );
Ein schneller Kontrollblick, ob die Seite alle Einstellungen/Beiträge/Seiten/Styles enthält und wir sind auch schon fertig.
Wenn wir trotz Änderungen an den URLs in der Datenbank noch zu unserer alten Domain gelangen, empfiehlt es sich den Cache von unserm Browser zu leeren. Der kann noch die Infos der alten Domain gespeichert haben, wodurch wir immer wieder dorthin weitergeleitet werden.