WordPress umziehen ohne Plugins

Bereit mit den großen Jungs zu spielen?

Mit WordPress umziehen ist mit Plugin`s kein Problem. Für kleine Blog-Seiten mag das auch zu treffen. Aber was ist, wenn WordPress und Datenbank im laufe der Zeit richtig gewachsen sind.

Umzug mit WordPress ohne Plugins

Startet man mit einem redaktionellen Blog oder Website reicht es ein Hostingpaket zu mieten. Aber irgendwann kommt der Punkt, wo der Webspace z.B. aus IT-Security- oder Performancedefiziten nicht mehr ausreicht.

[Von dem Vorteil “günstiger Preis” mal abgesehen, fällt mir kein weiterer positiver Grund ein, warum man sich mit IP-Sharing und den weiteren Nachteilen eines Hostingpaketes rumärgern sollte. Egal, das soll heute nicht das Thema sein.]

Steht man vor der Aufgabe, einen Hosting-Umzug mit einer WordPress Installation zu planen, ist der erste Versuch Plugins dafür zu verwenden. Bei größeren Projekten geht das meistens schief. Die erste Hürde ist die komplette Datenbank zu sichern. Bei Webhostern ist die Ausführungszeiten von PHP-Scripten (max_execution_time) auf 30 Sekunden begrenzt. Da bekanntlich PHPMyAdmin ebenfalls in PHP programmiert ist, greift diese Sicherheitsfeature auch hier.

Eine recht clevere Lösung ist mit MySQLDumper die Datenbank in einem Rutsch zu sichern, trotz max_execution_time = 30. MySQLDumper (in PHP programmiert) umgeht den Timeout-Error mit Hilfe eines kleinen Tricks: Er liest nur eine bestimmte Anzahl von Datensätzen aus der Tabelle aus, merkt sich, wie weit er gekommen ist, und ruft sich anschließend selbst auf. Dadurch erhält das Skript bei jedem Aufruf wieder die volle Ausführungszeit und umgeht so geschickt das Problem des Abbruchs durch den Server.

Meine vorgestellte Lösung ist EINE Möglichkeit innerhalb von Minuten den Umzug mit WordPress OHNE Plugins zu realisieren.

1. Datenbank sichern, mit Zugriff auf die Linux-Konsole, ansonsten MySQLDumper etc.

mysqldump -u [benutzname_deiner_datenbank] -p [datenbankname] > /tmp/irgendeindateiname.sql # (Passwort muss bekannt sein)

2. komplette Filesicherung der WordPress Installation, auch die *.sql
– per sftp alles lokal sichern. Oder gleich per SSH auf den neuen Server kopieren

3. Datenbank neu einspielen

mysql -u [benutzname_deiner_NEUER datenbank] -p [NEUERdatenbankname] < /tmp/irgendeindateiname.sql  #(NEUES Passwort sollte bekannt sein)

4. Alle Dateien der WordPress Installation per sftp zum neuen Server kopieren

5. wp-config.php anpassen

define('WP_SITEURL', 'NEUE URL');
define('WP_HOME', 'NEUE URL');
 // diese beiden Flags in der wp-config.php werden immer bevorzugt von WordPress verwendet. Immer ddie komplette URL angeben, also https://www. usw.

/**
 * Ersetze datenbankname_hier_einfuegen
 * mit dem Namen der Datenbank, die du verwenden möchtest.
 */
define('DB_NAME', 'NEUERDBNAME');
/**
 * Ersetze benutzername_hier_einfuegen
 * mit deinem MySQL-Datenbank-Benutzernamen.
 */
define('DB_USER', 'NEUERDBBENUTZER');
/**
 * Ersetze passwort_hier_einfuegen mit deinem MySQL-Passwort.
 */
define('DB_PASSWORD', 'NEUESDBPASSWORT');
/**
 * Ersetze localhost mit der MySQL-Serveradresse.
 */
define('DB_HOST', 'localhost');

6. Nach dem einspielen der Datenbanksicherung *.sql in die neue Datenbank:
– folgendes SQL-Statement ausführen (in PHPMyAdmin, db-konsole etc.)

UPDATE wp_options SET option_value = replace(option_value, 'ALTE URL', 'NEUE URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'ALTE URL','NEUE URL');
UPDATE wp_posts SET post_content = replace(post_content, 'ALTE URL','NEUE URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'ALTE URL','NEUE URL');

Entsprechend die SQL-Stats mit den alten Domainnamen und neunen Domainnamen ersetzten. Inkl. http oder https.

Genau so kannst Du die SQL-Stats verwenden, wenn du von HTTP auf HTTPS umstellen möchtest, (besser solltest/mußt).

Fertig!

Wenn du keine schlecht ausprogrammierte Plugins/Widgets verwendest, funktioniert dieser 6 Punkte Plan auf Anhieb. Du kannst auch weitere Links finden mit der WP-Konstante: define(‘RELOCATE’,true); in der wp-config.php.

@ 12.04.2017 Kleiner Nachtrag zu MySQLDumper:

Dumper unter PHP Version 7.1.2 funktioniert nicht. Grund, im Dumper werden noch die Alten mysql_connect Methoden etc. benutzt, welche nur bis PHP5.x genutzt wurden.

Dumper verträgt sich auch nicht mit einer ApplicationFirewall nach OWASP ModSecurity.

UND in der Webserver-Konfiguration:

Header always append X-Frame-Options DENY

vorübergehend deaktivieren. Ja richtig, es werden noch Frames benutzt. Und wenn man schon dabei ist, unbedingt in dem Installationsverzeichnis von Dumper einen Passwort-Schutz drauf legen.

Please rate this