WordPress auf neuen Server umziehen

So ziehst du mit deinem WordPress Portal auf einen neuen Server um

  • Für einfache Wordpress Seiten gibt es kostenlose oder günstige Plugins zum umziehen. Hier findest du eine gute Beschreibung dafür.

Für einen erfahrenen Admin ist auch der Umzug von großen und komplexen Internetportalen kein Problem:

Zuerst zeige ich hier dem Admin die Zusammenfassung direkt in der LinuX Console

TIPP: In der Datei wp-config.php findet man den Namen und den User der MySQL Datenbank und einiges mehr. :slight_smile:

systemctl stop httpd.service;  systemctl stop mysql.service
lsof -i:80; lsof -i:443; lsof -i:3306

cd /home/heldenkr/public_html
tar --numeric-owner -czf ../wp_backup-public_html.tar.gz *

cd /home/heldenkr/
systemctl stop mysql.service
mysqldump -u heldenkr_eis -p heldenkr_eis > wp_backup-heldenkreis.sql
systemctl start httpd.service; 

scp wp_backup-public_html.tar.gz -P 22 [email protected]:/home/heldenkreis/import/.
scp wp_backup_heldenkreis.sql -P 22 [email protected]:/home/heldenkreis/import/.

Nachdem alle Daten vom alten auf den neuen Server übertragen sind melden wir uns dort in der Console ab und melden uns via SSH mit “ssh -p22 [email protected]” am neuen Serer an:

cd /home/heldenkreis/import/
mysql -u heldenkreis -p heldenkreis < wp_backup_heldenkreis.sql

cd /home/heldenkreis/public_html
unp ../import/wp_backup-public_html.tar.gz
chown -R heldenkreis:heldenkreis /home/heldenkreis/public_html

TIPP: Als erstes passen wir die Informationen in der Datei wp-config.php an. Danach testen wir unsere Homepage. Die Log Dateien sind der Freund des Admins. Dort werden wir Informationen finden, wenn es Porbleme gibt. :slight_smile:

Schritt für Schritt erklärt:

Wenn man bei einem WordPress einen Serverumzug durchführt und sich dabei euch noch die URL ändert hat man als Ergebnis sehr schnell nur noch eine weiße Seite vor sich oder eingbettete Bilder werden nicht mehr angezeigt.

Aber wenn man weiß worauf man achten muss, kann man schnell und einfach eine funktionierende 1:1 Kopie der Seite anlegen, ohne sich auf umständliche Backup Plugins verlassen zu müssen. Folgender Weg hat sich für mich am schnellsten und praktikabelsten herausgestellt.

Vorab solltet ihr natürlich prüfen, ob der Zielserver die entsprechenden Systemvoraussetzungen für WordPress und alle benötigten Plugins bzw. Themes erfüllt! Außerdem benötigt ihr eine neue und leere Datenbank und ein Zielverzeichnis in das ihr die Dateien ablegen könnt und was per URL erreichbar ist.

WordPress Dateien sichern

Nachdem man bei Bedarf das WordPress in den Wartungszustand versetzt hat sichert man zunächst alle Dateien. Dazu kann man entweder den gesamten WordPress Ordner per FTP herunterladen, oder - sofern man Zugriff auf eine Shell hat - ein Archiv erzeugen, was deutlich schneller geht.

Angenommen das WordPress liegt auf einem alten Centos Server im Verzeichnis „/home/heldenkr/“, dann erzeugt ihr das Archiv mit dem Befehl:

cd /home/heldenkr/public_html
tar --numeric-owner -czf ../wp_backup-public_html.tar.gz *
scp /wp_backup-public_html.tar.gz [email protected]:/home/heldenkreis/.

Ist das Archiv fertig erstellt könnt ihr dies per FTP, SCP oder auch per „wget“ auf den Zielserver übertragen. Dort könnt ihr das Archiv mit folgendem Befehl wieder entpacken sofern es wieder in das gleiche Verzeichnis soll:

cd /home/heldenkr
tar xf wordpress.tar.gz

Ist das Archiv fertig entpackt findet ihr die Dateien nun wieder unter „/home/heldenkr/public_html“ und ihr könnt euren „vhost“ entsprechend konfigurieren bzw. eure Domain auf diesen Ordner legen sofern ihr dies noch nicht getan habt. Achtet darauf, dass die Dateien den für euren Webserver korrekten Benutzer haben. Bei einem Ubuntu Apache2 unter Virtualmin ist dies meist der Benutzer selbst also zum Beispiel „heldenkreis“. Mit folgendem Befehl könnt ihr die Dateirechte entsprechend anpassen:

cd /home/heldenkreis/
chown -R heldenkreis:heldnkreis ./public_html

Ohne die MySQL Datenbank wird sich bei dem Aufruf der kopierten Dateien im Browser natürlich noch nicht viel tun.

WordPress Datenbank übertragen

Diesen Schritt könnt ihr auch vornehmen während die Archive ge- bzw. entpackt werden, da dies bei größeren Installationen einige Zeit dauern kann. Die Übertragung der Datenbank kann wieder über mehrere Wege geschehen. Meistens hat man Zugriff auf einen „phpMyAdmin“ und kann hier über die Schaltflächen „Exportieren“ bzw. „Importieren“ die Datenbank übertragen. Natürlich kann man den Export und Import ebenfalls per Shell durchführen, was meine bevorzugte Variante ist, da ich eh auch ein TAR Archiv erstelle. Angenommen die MySQL-Datenbank „heldenkr“ liegt auf dem „localhost“ mit Zugriff über den „userheld“, so erzeugt ihr einen Datenbank-Dump mit dem Befehl:

mysqldump -u userheld -p heldenkr > heldenkr.sql

Nach der Eingabe wird MySQL euch nach dem zugehörigen Passwort fragen. Danach könnt ihr die Datei „heldenkr.sql“ ebenfalls auf den Zielserver übertragen. Hier hat der User Heldnkreis Zugriff auf die neue leere Datenbank mit dem Namen heldenkreis. Mit dem folgenden Befehl könnt ihr den Dump in die neue und leere Datenbank importieren:

mysql -u heldenkreis -p heldenkreis < heldenkr.sql

Achtet darauf, dass ihr euch bei der Ausführung des Befehls im gleichen Verzeichnis befindet wie die „heldenkreis.sql“ Datei. Auch hier werdet ihr wieder nach dem Passwort gefragt.

Als nächstes geht es an die Anpassung der Einstellungen.

WordPress Einstellungen anpassen

Zunächst müsst ihr die Datenbankzugangsdaten anpassen, sofern sich diese geändert haben. Dazu bearbeitet ihr die Datei „wp-config.php“ die ihr im Hauptordner der Installation findet. Dort sucht ihr eine Zeile:

define('DB_NAME', 'wordpressdb');

Den Wert „wordpressdb“ müsst ihr entsprechend dem Beispiel oben ändern in „neuedb“, was eurem neuen Datenbanknamen entspricht. Achtet darauf, dass die umschließenden Anführungszeichen bzw. Hochkommata erhalten bleiben. Analog dazu ändert ihr auch die Einträge „DB_USER“, „DB_PASSWORD“ und „DB_HOST“ weiter unten sofern nötig.

Wenn sich eure URL für das WordPress nicht geändert hat, seid ihr mit dem Umzug fertig und solltet die Seite nun wieder aufrufen und euch anmelden können.

WordPress URL ändern

Sofern sich die Domain ändert müssen noch einige Extraschritte durchgeführt werden, denn dann seht ihr derzeit nur eine weiße Seite. Das liegt daran, dass WordPress die Domain fest in seine Einstellungen schreibt. Damit man die Seite wieder aufrufen kann, muss man diese Einstellungen anpassen. Dazu ruft man im „phpMyAdmin“ oder einem anderen Datenbanktool die Tabelle „wp_options“ auf. Das Präfix „wp_“ kann dabei je nach Installation variieren. In dieser Tabelle sucht man nun die beiden Zeilen mit den Einträgen „siteurl“ und „home“ in der Spalte „option_name“. In der Spalte „option_value“ steht jeweils die alte URL. Hier müsst ihr jeweils den Wert entsprechend auf eure neue URL ändern. Achtet darauf, dass vorne das „http://“ bzw. „https://“ stehen bleiben muss.

Nun könnt ihr die Seite im Browser wieder aufrufen und euch im Backend anmelden. Jedoch ist es möglich, dass einige Bilder nicht korrekt angezeigt werden und ggf. einige Links nicht funktionieren. Auch hier schreibt WordPress leider die URLs komplett in die Datenbank. Eine unschöne Möglichkeit wäre nun alle Beiträge etc. durchzugehen und die Bilder manuell neu zu setzen, aber das geht auch schneller und einfacher. Dazu benötigen wir dann aber doch die Hilfe eines Plugins.

Wir haben gute Erfahrungen mit dem Plugin Search and Replace gemacht. Es dient dazu in der WordPress Datenbank nach Einträgen zu suchen und diese zu ersetzen. Ist das Plugin installiert und aktiviert findet ihr es im Menu unter „Werkzeuge > Suchen & Ersetzen“. in dem Reiter „Suchen & Ersetzen“ gebt ihr in das Feld „Suchen nach“ die alte URL ein. Hier könnt ihr das „http“ bzw. „https“ auch weglassen. In das Feld „Ersetzen durch“ gebt ihr entsprechend die neue URL ein (auch hier das „http“ weglassen wenn ihr es beim Suchbegriff weggelassen habt). Nun den Haken bei „Alle Tabellen auswählen“ setzen. Ihr könnt zunächst einen „Testlauf“ machen und bekommt dann oben die Anzahl an betroffenen Tabellen und Einträgen angezeigt. Sofern Einträge vorliegen, die geändert werden müssen, ist das ein gutes Zeichen und ihr könnt den Haken bei „Testlauf“ herausnehmen und die Änderungen direkt in die Datenbank schreiben lassen.

Nun sollten alle Bilder und Links wieder einwandfrei funktionieren.

Fazit

Gratulation. Du hast eine 1:1 Kopie deines WordPress erfolgreich umgezogen und sogar die URL geändert.