Webseite umziehen

· entwicklung · 4 Minuten Lesezeit

Wir befassen uns zwar fast ausschließlich mit der Umsetzung, Betreuung und Optimierung von Magento Shopsystemen, doch kommen uns hier und da auch andere Systeme unter die Tasten. Es sind Eigenentwicklungen, PIM-Systeme, Schnittstellen, aber auch CMS wie etwa WordPress.

Zu den häufigsten Aufgaben bei WordPress-Systemen zählt der Umzug von einem Server zum Anderen oder auch der Wechsel der Domain beim “Going-Live” eines neuen Systems.

Bei einem Umzug gibt es ein paar Kniffe und Fallstricke. Hier geben wir ein paar Tipps, die das Vorhaben beschleunigen und vereinfachen können.

URLs ändern

Testsysteme sind während der Entwicklung oft über andere Domains erreichbar. Unsere Domains folgen dabei einer definierten Struktur:

projektname.unsere-test-system-domain.de

Während der Entwicklung wird das System mit dieser URL konfiguriert und alle Verknüpfungen (z.B. Bilder), stehen mit dieser URL in der Datenbank. WordPress speichert viele Daten in Form von serialisierten Arrays. Die Besonderheit hierbei ist, dass der entstehende Text in der Datenbank neben dem Wert, auch die Anzahl der Zeichen enthält:

a:1:{s:6:"domain";s:21:"projektname.domain.de";

In diesem Beispiel sehen wir den Teil s:21, der beschreibt wieviele Zeichen folgen. Ändern wir, in diesem Beispiel, die Domain, ändert sich auch die Anzahl der Zeichen:

a:1:{s:6:"domain";s:18:"www.projektname.de";}

Mit der neuen Domain sind es nur noch 18 Zeichen.

Stimmt die Zahl der Zeichen nicht mit den dann folgenden Zeichen überein, kommt es zu einem Fehler:

PHP Notice:  unserialize(): Error at offset 20 of 52 bytes

Je nach Einstellungen des Webservers, wird dieser Fehler nur in die Log-Dateien geschrieben, oder wird auf der Webseite ausgegeben. Unabhängig davon, kann dieser Fehler den einwandfreien Betrieb der Seite beeinträchtigen.

Aus diesem Grund ist davon abzuraten, die auf diese Weise gespeicherten Werte zum Beispiel direkt in der Datenbank zu ändern. Wir haben gute Erfahrungen mit dem Plugin WP DB Migrate gemacht. Es wird wie jedes andere WordPress- Plugin installiert und steht nach der Aktivierung unter Werkzeuge / Migrate DB bereit.

Dort können, wie im Screenshot zu sehen, die URL’s ersetzt werden, ohne dass es zu unerwünschten Nebenwirkungen durch die Veränderung der Zeichenlänge kommt.

Hier gibt es einzig zu beachten, das es nach dem Ersetzen der Domain zu Lade-Schwierigkeiten auf der Webseite kommen kann, sofern sie noch nicht unter der neuen URL bereitsteht.

Basis / Seiten URL ändern

Ein WordPress-System hat zwei Einträge, welche die Haupt-Domain enthalten. Das ist zum einen die Seiten URL, zum anderen die Basis URL. Diese URL’s sind entweder in der wp-config.php definiert oder befinden sich in der Datenbank. In der wp-config.php:

<?php
[...]
define('WP_HOME', 'https://projektname.domain.de');
define('WP_SITEURL', 'https://projektname.domain.de');
[...]

Oder in der Datenbank:

MariaDB [wordpress]> select * from wp_options limit 2;
+-----------+-------------+-------------------------------+----------+
| option_id | option_name | option_value                  | autoload |
+-----------+-------------+-------------------------------+----------+
|         1 | siteurl     | https://projektname.domain.de | yes      |
|         2 | home        | https://projektname.domain.de | yes      |
+-----------+-------------+-------------------------------+----------+
2 rows in set (0.00 sec)

Hier lässt sich der Wert ohne weitere Probleme anpassen. Einfach die wp-config.php in einem Text-Editor öffnen, die URL anpassen und auf den Server hochladen.

In der Datenbank kann die URL mit einer einzelnen Query angepasst werden:

UPDATE wp_options SET option_value = "https://www.projektname.de" where option_id in (1,2);

Im Anschluss muss ggf. der Cache geleert werden (sofern einer installiert ist) und das System kann unter der neuen Domain genutzt werden.

Dateien umziehen

Ein WordPress-System besteht zumeist neben dem eigentlichen System aus einer Vielzahl von Plugins und hochgeladenen Bilddaten, Dokumenten oder auch Videos. Per FTP lassen sich diese Daten einfach übertragen. Je nach Anzahl der Plugins und Uploads kann es sich jedoch um ein langwieriges Verfahren handeln, wenn viele tausende Dateien übertragen werden müssen. Oftmals müssen diese Daten zuerst vom Entwicklungssystem heruntergeladen und im Anschluss wieder auf das neue System hochgeladen werden. Per FTP werden dabei alle Dateien einzeln hoch- bzw. heruntergeladen. Eine schnellere Möglichkeit bietet hier der Übertrag von Archiven. Dieses Vorgehen setzt allerdings voraus, dass es möglich ist, auf dem Server Archive zu entpacken. Dabei werden alle Dateien auf dem Test-System gepackt. Entweder über eine Oberfläche, mit einem Tool wie WinZIP oder auf der Konsole:

tar cvf website.tar /pfad/zum/htdocs

Nach dem Packen kann das Archiv heruntergeladen und auf den neuen Server hochgeladen werden. Dabei wird lediglich eine Datei anstelle von tausenden übertragen. Auf das neue System hochgeladen, kann die Datei wieder entpackt werden, entweder über eine Benutzeroberfläche oder auf der Konsole:

tar xvf website.tar

Im Anschluss ist das System umgezogen und kann unter der neuen Domain aufgerufen werden.

Zurück zum Blog