FOL9000

WordPress auf neue Domain oder neuen Server umziehen

von

Tipps und Infos zu einem Umzug einer WordPress-Installation auf einen neuen Server, eine neue Domain oder über die Nutzung eines SSL-Zertifikats (also der Umstellung von http auf https) findet sich viele. Aus gegebenem Anlass soll hier noch einmal alles zusammengefasst werden. Dabei muss man nicht das volle Programm nutzen; auch wer alles auf dem alten Server mit der alten Domain belassen möchte und nur SSL nutzen möchte, findet hier die nötigen Informationen.

Je nachdem, was man machen möchte, braucht es mehrere Schritte:

Umzug auf einen neuen Server

Nicht jeder möchte vielleicht gleich mit seiner WordPress-Installation auf einen anderen Server eines anderen Hosters umziehen. Aber wenn das geplant ist, ist es ganz einfach.

Ich gehe hier nicht davon aus, dass irgendein Hilfstool des neuen Hosters genutzt wird: Diese Tools sind einfach zu unterschiedlich als das man allgemein gültige Tipps geben könnte. Wegen der Unterschiedlichkeit der Hoster-Backends bleibt das ganze aber auch hier an einigen Stellen etwas grob.

Backup der alten Installation

Zunächst gilt es, einen Dump der aktuellen WordPress-Datenbank zu machen. Manche Hoster bieten dies bereits in ihren Backends als Funktion an, es geht aber auch zu Fuß über phpMyAdmin unter ‚SQL-Export‘.

Nach der Datenbank ist das WordPress-Verzeichnis an der Reihe. Ich sichere einfach das gesamte Verzeichnis, in dem WordPress liegt. Eigentlich dürfte es reichen, das Verzeichnis wp-content und die Datei wp-config.php zu sichern und hat man daran Änderungen gemacht, muss auch die .htaccess-Datei mit rüber. Aber irgendwie muss ja das komplette WordPress auf den neuen Server und zieht man einfach alles rüber, vergisst man auch nichts.

Hat man einen SSH-Zugang auf dem Server, ist es vielleicht ratsam, auf dem alten Server zunächst das bestehende Word-Press Installationsverzeichnis zu komprimieren und das Archiv herunterzuladen. Eine WordPress-Installation ist aber zunächst auch nicht so groß, dass das unkomprimierte Herunterladen per ftp eine Riesensache wäre.

Nun hat man zwei Dateien bzw. eine Datei und ein Verzeichnis: Den Datenbank-Dump und das (evtl. komprimierte) Verzeichnis mit der bestehenden WordPress-Installation.

Restore auf dem neuen Server

Ein Restore auf dem neuen Server ist nun genauso einfach wie das Backup.

Zunächst muss im Backend des neuen Hosters eine Datenbank angelegt werden. Wieder gilt: Das ist überall anders, eine Anleitung für alle Hoster kann man kaum geben. Merken muss man sich aber den Namen der Datenbank, den Datenbank-User und sein Passwort.

Mit phpMyAdmins SQL-Import kann nun das Backup in die neue Datenbank importiert werden. Bleibt die Domain, wechselt man also nur den Hoster, muss man in der Datenbank auch keine Änderungen vornehmen. Ändern muss man aber die Datenbank-Connection für WordPress. Sie steht in der Datei wp-config.php. In dieser Datei setzt man bei den Konstanten DB_NAME, DB_HOST, DB_USER, DB_PASSWORD die Werte ein, die man sich bei der Neuanlage der Datenbank gemerkt hat.

Das Backup der eigentlichen WordPress-Installation kann man ebenso einfach per ftp auf den neuen Server kopieren. Hier ist allerdings zumindest eine Kontrolle angesagt. Hat man die Datei .htaccess geändert und dort einen absoluten Pfad zu einer Datei angegeben (z.B. zu einer .htpasswd), muss auch dieser Pfad an den neuen Server angepasst werden. Dieser Pfad ist nicht immer offensichtlich, aber manchmal gibt es im Hoster-Backend Informationen dazu, wie der absolute Pfad zum Webspace aussieht.

Hat man wirklich nur den Hoster gewechselt und die Domain auf den neuen Hoster übertragen, war es das. Jetzt kann man es mit einem Aufruf aus dem Browser versuchen. Sollte es nicht funktionieren, gibt es typische Fehlerquellen:

  • Datenbank-Probleme liegen meist an Tippfehlern, die beim Eintragen der neuen Connection in der Datei wp-config.php passiert sind.
  • Fehler mit dem Fehler-Code 500 sind immer schwer zu finden. Oft sind es aber auch hier nur einfache (Tipp-)Fehler, z.B. in der .htaccess

Umzug auf eine neue Domain oder SSL-Zertifikat nutzen

Der Umzug zu einer neuen Domain oder das Nutzen eines SSL-Zertifikats sind aus WordPress-Sicht das gleiche: Man muss WordPress mitteilen, dass nun die neue Domain oder eben https statt http verwendet werden soll.

(Ich gehe hier natürlich davon aus, dass sowohl das SSL-Zertifikat vorliegt als auch die neue Domain funktioniert.)

Nun kurz überlegen, welches Vorgehen möglich ist:

Kann man WordPress noch über die alte Domain aufrufen oder will man nur von http auf https umstellen, kann man dies in WordPress selbst umstellen, nämlich unter Einstellungen → Allgemein. Dort einfach unter ‚WordPress-Adresse (URL)‘ und ‚Website-Adresse (URL)‘ die neuen Domains bzw. https-Versionen eintragen. Danach sollte man alle Einstellungen, auch von Plugins nochmal durchgehen, denn es finden sich – v.a. auch bei Mail-Adressen – gern noch weitere anzupassende Werte.

Ist die WordPress-Installation nicht mehr direkt aufrufbar, ändert man die Werte direkt in der Datenbank, auch hier am einfachsten mit phpMyAdmin. Die Werte stehen in der Datenbank-Tabelle wp_options in den Spalten siteurl und home.

Eigentlich sollte nun alles auf der neuen Domain oder mit https statt http laufen, aber: Beim Umzug haben sich evtl. auch auch Mail-Adressen geändert. Sie finden sich in der Datenbank-Tabelle wp_options in den Tabellen mailserver_url und mailserver_login sowie mailserver_pass.

Schließlich können auch einige Plugins Daten mit der alten Domain in der Datenbank abgelegt haben. Am einfachsten wird es sein, dies im Backend zu kontrollieren, wenn WordPress wieder korrekt läuft. Muss man es vorher machen, bleibt wieder nur das direkte Ändern in der Datenbank mit phpMyAdmin. Hier hilft eine kurze Suche mit folgendem SQL-Query:

SELECT * FROM wp_options WHERE option_value LIKE '%alte-domain.xyz%'

(Hier natürlich alte-domain.xyz durch die alte Domain ersetzen.)

Dies liefert alle Spalten, in denen noch die alte Domain vorkommt. Möchte man da von Hand etwas ändern, ist u.U. ein besonderes Vorgehen angesagt. Es gibt Einträge in option_value, in denen mehrere Werte als Liste gespeichert werden. Zeichenketten habe darin Einträge der Form:

s:8:"larifari"

Dabei gibt die acht die Länge der folgenden Zeichenkette an. Ändert man die, muss man auch die Längenangabe anpassen.

Ein nützliches Tool

Wem das alles zu viel Gehampel ist und wer die Änderungen aus WordPress heraus vornehmen kann, der findet natürlich auch hier ein Plugin: Search & Replace von Inpsyde. Damit lässt sich komfortabel in der WordPress-Datenbank suchen und auch URLs lassen sich leicht austauschen.

Automatischer Redirect

Möchte man nur auf eine gesicherte Verbindung umziehen, also von http auf https, ist es ratsam, wenn man in der .htaccess-Datei eine Umleitung von http auf https anlegt. Dann kann man zwar weiterhin die Seiten per http aufrufen, man wird aber automatisch auf https umgeleitet.

Am einfachsten geschieht dies durch folgenden Eintrag:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Erweitert man dies noch ein wenig, kann man so ziemlich alle Schreibweisen auf ein einheitliches Ziel umleiten. Der folgende .htaccess-Eintrag leitet nicht nur http auf https um, sondern auch URLs ohne www. auf die volle Schreibweise mit www.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>

Und noch ein kleiner Hinweis: Wenn nach einer Änderung in der .htaccess nichts mehr funktioniert und ein Interner Server Error mit Code 500 zurückgegeben wird: Keine Panik! Einfach den neuen Code wieder rausnehmen, ist meist nur ein Tippfehler.

Kommentare sind geschlossen.