Update auf WordPress 5 mit zeitgleichem Server-Wechsel


Thema: Ubuntu – MariaDB – WordPress – Apache – CleanBlogg Theme.


Ist das Update von WordPress 4 auf WordPress 5 schon nicht trivial, wird mit einem zeitgleichen Serverwechsel echt mühsam. Datenbank installieren und Einrichten ist unter MariaDB statt MySQL unter Ubuntu beschrieben, auch das Einrichten des Servers (Virtual Host für Apache auf Ubuntu) und das WordPress am Server installieren ändert sich nicht. Man hat dann eine leere Instanz. Bevor man Daten exportiert und importiert, sollte man folgende Punkte berücksichtigen:

  • Viele wichtige Plugins speichern eigene Daten, die verloren gehen können, auch mit dem Datenimport und Datenexport werden keine spezifischen Plugindaten übertragen. Gute Plugins erlauben aber das Exportieren und Importieren der Parameter und Daten. Bei allen anderen muss man die Daten notieren, wenn man keinen Zugriff mehr auf die alte Instanz hat. An das muss man natürlich zuvor denken.
  • Beim Übertragen der Bilder werden nur die Original-Dateien übertragen und die Verkleinerungen werden am neuen Server generiert. Das hat zur Folge, dass Wasserzeichen nicht mit übertragen werden. Zwei Möglichkeiten hier:
    • In der Medien-Gallerie alle Bilder auswählen (ggf. ganz oben rechts unter Bildschirm Optionen die Anzahl der angezeigten Bilder erhöhen) und das Wasserzeichen neu anwenden. Das gilt dann für alle angewählten, das heisst man muss ggf. einzelne abwählen (s.o.).
    • Import durchziehen und nachher die Ordner mit den Bilderm per FTP direkt in der Verzeichnisstruktur vom alten Server auf den neuen Server überspielen. Der Vorteil hier: hat man auch Bildmaterial von z. B. Wikipedia, das man ohne Wasserzeichen belassen hat, so ist nachher alles wie zuvor.
    • Liegen alte und neue Instanz am selben Server kann man direkt kopieren:
server.tld/wpOLD/wp-content/uploads# cp -R 20* ../../../wpNEW/wp-content/uploads/
server.tld/wpNEW/wp-content/uploads# chown -R www-data:www-data ./

Unterschiedliche URLs

Wechselt man den Server und will den Wechsel unter Beibehaltung der alten Instanz machen (was ohne Erfahrung sinnvoll ist), so muss man für die neue Instanz eine neue (Sub-)Domain anlegen. Wie es damit weitergeht steht weiter unten!

Exportieren der alten Daten

Im Backend geht das unter Werkzeuge/Daten exportieren/Alle Inhalte. Man erhält eine XML-Datei aller Seiten, Blogeinträge, Menüs und ggf. von Plugins, die sich hier eintragen (das machen allerdings die wenigsten). Es werden die Daten der Medien übertragen, nicht jedoch die Bilder selber. Diese werden erst geholt, wenn man die Daten in eine neu WordPress-Instanz wieder importiert.

Es handelt sich konkret um ein Plugin, das man dort auch aktivieren/deaktivieren kann. Es soll nur bis zur Version 4.9.9, aber es geht auch für 5+.

Solch eine XML-Datei ist bei 500 kurzen Beiträgen rund 12mb gross. Selten kann man allerdings so grosse Dateien bei WordPress hochladen, die Grenze liegt meiste bei 8mb. Das kann man aber umgehen, indem man die Datei komprimiert. Unter Windows geht das mit 7-Zip ganz gut, wir müssen gzippen, das heisst, am ende haben wir eine *.xml.gz-Datei, welche bei mir von 12 auf 1,6mb geschrumpft war. Sinnvoll eingerichtet Server entzippen solche Dateien direkt beim Upload.

Die einzelnen Schritte mit der neuen und nackten WordPress-5-Instanz

Installieren des gewünschten Designs (Theme)

Auch Designs haben spezifische Bildgrössen, die sie in der WordPress-Instanz eintragen (konkret in functions.php, das kann man auch unter Design/Editor einsehen). Ist das Design installiert, werden beim Importieren auch diese Bildformate generiert.

Nachtragen eigener Bildformate

Hat man eigene Bildgrössen definiert (vgl. CleanBlogg Thema und Bildplatzierung mit der Gallery), so muss man diese Änderungen einfügen, sonst werden nur die Standardgrössen am neuen Server verfügbar sein.

Löschen aller Einträge

In der Standard-Installation gibt es einen Blogeintrag, zwei Seiten und ein Kommentar. Diese alle gänzlich löschen (auch aus dem Papierkorb). Anderenfalls können diese Dupliziert werden, wenn sie unter dem gleichen Namen im darauffolgenden Import eingespielt werden. Oder aber sie landen nach dem Import irgendwo und vergisst dann sie zu löschen.

Daten in die neue WordPress-5-Instanz importieren

Unter Werkzeuge/Daten importieren wählt man die zuvor generierte *.xml.gz-Datei aus und startet den Import. Die Datei wird in ein paar Sekunden hochgeladen und es folgt ein weiterer Dialog, in dem gefragt wird, ob die Medien (im wesentlichen die Bilder) nachgeholt werden sollen. Das geht natürlich nur wenn die Originalbilder online frei zugänglich sind und nicht wie unter Originalbilder nicht online verfügbar machen beschrieben versperrt sind.

Achtung, das Importieren der Bilder dauert sehr lange, und das ohne jeder Status-Anzeige. Es wird wie gesagt nur das Originalbild übertragen, diese sind immer die Grössten. Die Dauer hängt auch von der Qualität der Datenverbindung zwischen den zwei Servern ab. Hier ein paar Vergleichswerte, die klar belegen, dass die Zeit stark von der Bildmenge abhängig ist:

Exportfile gezippt Bilder Bilder inkl. Thumbs Zeit
14mb 1,6mb 2000 12gb 40min
30mb 1,8mb 2400 9,2gb 1h 20min
20mb 0,9mb 4600 5,8gb running
11mb 0,6mb 2400 24gb 2h 40min

Besonders das letzte Beispiel ist drastisch. Es handelt sich um einen Blog, wo der Nutzer Originalbilder der Kamera hochgeladen hat. Abhilfe schafft hier das Plugin Imsanity, siehe dazu Eingesetzte WordPress-Plugins unter dem Kapitel Bilder.

Sonstige händische Anpassungen

Das ist recht langwierig und gerne mit Fehlern behaftet. Es betrifft:

  • Restliche Plugins installieren
  • Design einstellen wir zuvor (oder neu)
  • Widgets anpassen

Zur ursprünglichen URL zurückkehren

Hat man die neu Instanz unter neu.server.tld angelegt, will man sicher auf www.server.tld zurückkehren. unter Einstellungen/Allgemein geht das in den Feldern WordPress-Adresse und Website-Adresse vermeintlich einfach. In der Tat wird die Adresse der Seite umgestellt. Aber leider nur diese! Sämtliche internen Links und die Verweise auf Medien und Bilder sind unter WordPress standardmässig hart samt URL eingetragen und das ist die alte! Man merkt den Fehler nur, wenn die alte Instanz wirklich abgedreht ist, dann fehlen die Bilder.

WordPress bietet selber nichts brauchbares zum Nachführen der Adresse an, aber das Plugin Velvet Blues Update URLs hilft hier gut. Siehe dort für eine genauere Beschreibung.

Gutenberg vs. Classic Editor

Ich hatte mir von einem neuen Editor viel erwartet, es ist aber eine Katastrophe. Die paar neuen Funktionalitäten können nicht darüber hinwegtäuschen, dass viele alte Layout-Elemente nicht oder nur mehr sehr schlecht erreichbar sind. Abhilfe schafft das Plugin Classic Editor, welches den alten Editor wieder herstellt (kann man unter Plugins immer wieder aktivieren und deaktivieren). Man fragt sich dann schon, was der Sprung von der Version 4 auf die Version 5 gebracht hat.

Hier ein ein paar dieser Eindrücke zum Gutenberg-Editor, Stand Jänner 2019 auf WordPress 5.0.3:

  • Man kann vorformatierten (gesperrten) Text nicht mehr mit Farben versehen. Das ist zum Unterscheiden von Code-Beipielen wichtig.
  • Alte und importierte Blog-Beiträge erhalten automatisch im Gutenberg-Layout eine Classic Toolbar. Diese ist aber in einem neuen Beitrag partout nicht aktivierbar.
  • Alte und importierte Blöcke haben keine Ansätze mehr sondern nur einen Zeilenumbruch. Das kann man, wenn man mit dem Plugin Classic Editor arbeitet anscheinend nur händisch je Absazu (!) ändern.
  • Im Plugin Classic Editor gibt es keine Vorschau zu Youtube-Links.
  • Beim Einfügen vom Links wird nur die (klickbare) URL nach der Suche eingefügt, nicht aber der Titel der internen Seite.

 

Export-Dialog

Import Dialog mit Zusammenführen zweier Autoren zu einem und Medien nachholen.

No Comments

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.