Wartung von WordPress-Websites mit der wp-cli

Websites wollen und sollen betreut werden, denn für ein CMS gibt es regelmäßig Updates, die zeitnah installiert werden sollen. Damit WordPress nicht Ziel eines Angriffs wird, ist es sehr empfehlenswert WordPress selbst aber auch die Plugins aktuell zu halten. Wenn man nur eine WordPress-Installation zu betreut, ist das Installieren der Updates schnell erledigt. Man meldet sich im Backend an und installiert die Updates. Wartungs- und Sicherheitsupdates werden von WordPress sogar schon automatisch installiert.

Es wird aber etwas aufwendiger, wenn man mehr Seiten aktuell halten möchte. Es gibt Tools, die einen bei dieser Aufgabe unterstützen, wie z.B. ManageWP oder InfintiyWP. Letzteres habe ich eine Zeit lang genutzt.

Wenn man mit dem Terminal etwas vertraut ist, dann sollte man sich unbedingt die wp-cli anschauen. Wie man die wp-cli auf einem Uberspace installiert, habe ich an anderer Stelle erklärt. Wenn man schon einen Account auf einem Uberspace 7 hat, dann ist die wp-cli bereits installiert. Dies ist die Basis, wenn man seine WordPress-Websites mit der wp-cli warten möchte.

Mein Ziel war es mit nur einem Befehl zu überprüfen, ob Updates aktualisiert werden müssen. Mit einem weiteren Befehl werden dann die Updates auf allen Websites installiert. Nach der Installation der Updates werden die Websites im Browser geöffnet, damit die Funktionalität überprüft werden kann.

Voraussetzung für alles ist, dass die wp-cli auf dem Server und lokal installiert ist. Wenn du unter macOS arbeitest, dann ist das mit brew install wp-cli schnell erledigt. Des Weiteren wird SSH benötigt.

Der klassische Weg, um sich via SSH mit dem Server zu verbinden ist mit diesem Befehl: ssh username@example.org.

Kann man machen, jedoch bin ich faul und möchte nicht immer den langen Befehl eintippen. 🙃Deswegen habe ich mir für die Websites Aliase angelegt. Dafür wird in die Datei ~/.ssh/config folgender Teil ergänzt:

Host example
  Hostname example.org
  User username

Jetzt kann mit ssh example eine Verbindung zum Server aufgebaut werden. Diesen Vorteil nutze ich dann bei der Konfigurationsdatei für die wp-cli.

Die Skripte und die Konfiguration-Datei findest du im Repository auf GitHub. Das Projekt dient als Startpunkt für deine Wartung der WordPress-Websites.

Status der WordPress-Websites abfragen

Mit dem Skript status wird von jeder Website, die in der wp-cli.yml hinterlegt ist, der Status aufgelistet. In der Auflistung wird der Status vom WordPress Core, den Plugins und der Sprachen aufgelistet.

Da es in der Vergangenheit vorkam, dass bei einem Angriff auf WordPress zusätzliche Nutzer angelegt wurde, gibt das Skript alle WordPress-Benutzer aus.

In diesem Schritt bekommt man eine Übersicht über die Updates, die im nächsten Schritt installiert werden.

Updates installieren

Die Wartungs- und Sicherheitsupdates werden von WordPress in den meisten Fällen automatisch installiert. Bei den automatischen Updates kam es jedoch schon zu Fehlern. Deswegen werden in dem Skript upgrade im ersten Schritt alle Minor-Updates installiert. Liegt ein Major-Update vor, dann wird dies nicht vom Skript installiert. Mit wp @all core upgrade könnte man diese, unabhängig vom Skript, installieren.

Bei den Plugins und den Sprachen wird immer die aktuelle Version, die zur Verfügung steht, installiert. Sind alle Update installiert, öffnet das Skript die Websites im Browser und man hat die Möglichkeit die Websites auf die Funktionalität zu prüfen.

WordPress-Wartung für die Terminal-Nutzer

Mit den beiden Skripten lassen sich WordPress-Websites sehr einfach warten. Kommt eine neue Website hinzu, dann wird diese in der wp-cli.yml ergänzt. Jeden Montag rufe ich die beiden Skripte auf und kümmere mich auf sehr einfache Art und Weise um die WordPress-Websites.

Vermutlich verwendest du einen veralteten Browser. Da diese Website auf moderne Technik setzt, benötigst du einen aktuellen Browser, um diese Website richtig darzustellen.