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.