WordPress CLI installieren und nutzen

Für das Content-Management-System WordPress existiert neben dem eigentlichen System auch eine separate Kommandozeile. Die hört auf den Namen WP-CLI und muss im ersten Schritt installiert werden:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

Damit ist die WP-CLI installiert und kann über das Kommando:

wp --info

getestet werden. Um WP-CLI aktuell zu halten, kann das Kommando:

wp cli update

genutzt werden.

Grundsätzlich sollten die Befehle der WP-CLI im Kontext des Webserver-Nutzers ausgeführt werden. In den meisten Fällen ist dies www-data. Eine Ausnahme bilden die Befehle zur Installation und zur Aktualisierung. Wird versucht ein WP-CLI-Befehl unter dem root-Nutzer auszuführen, so erhält der Nutzer folgende Meldung:

Error: YIKES! It looks like you’re running this as root. You probably meant to run this as the user that your WordPress installation exists under.

If you REALLY mean to run this as root, we won’t stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS.

If you’d like to continue as root, please run this again, adding this flag: –allow-root

If you’d like to run it as the user that this site is under, you can run the following to become the respective user:

sudo -u USER -i — wp

Per sudo mit dem korrekten Nutzer ausgeführt funktioniert das Ganze:

sudo -u www-data wp transient delete --all
Success: 163 transients deleted from the database.

Mittels der WP-CLI lassen sich eine Reihe von Aufgaben bewerkstelligen. So verfügt die CLI über Methoden, um Kommentare zu erzeugen und zu verwalten. Mit dem Befehl:

wp comment delete $(wp comment list --status=spam --format=ids)

können z.B. alle Spam-Kommentare gelöscht werden. Über den core-Namespace können unter anderem WordPress-Updates vorgenommen werden:

wp core update

Vor allem im Zusammenhang mit einer Automation spielt WP-CLI seine Stärken aus. So können neue WordPress-Installationen angelegt werden und entsprechende Plugins automatisch installiert werden. In der Entwickler-Dokumentation von WordPress findet sich eine Referenz der Befehle der WP-CLI.

Entwickelt wird WP-CLI auf Github. Lizenziert ist das CLI unter der MIT-Lizenz und damit freie Software. Die offizielle Seite des Projektes ist unter wp-cli.org zu finden.

Toolbox für Mailserver

Vor einigen Tagen wollte ich auf die Schnelle überprüfen ob ein bestimmter Mailserver auf einer Spamblacklist steht. Genutzt habe ich dabei den Webdienst MXToolBox. Bei der MXToolBox handelt es sich um einen Webdienst, welcher unterschiedliche Tools für die Überprüfung und Diagnose von Mailservern bereitstellt.

mxtoolbox.com

mxtoolbox.com

Das fängt bei Werkzeugen für die Blacklist-Überprüfung an und erstreckt sich über Tests der Mailserverkonfiguration bis zur Überprüfung der DNS auf entsprechende Probleme. Der Dienst – welcher unter mxtoolbox.com zu finden ist – kann dabei frei genutzt werden. Für erweiterte Funktionen wie die regelmäßige Blacklistüberprüfung wird ein (je nach Anforderungen; kostenpflichtiger) Account benötigt.

Mindestlänge für Kommentare unter WordPress

Ab und an habe ich in diesem Blog Probleme mit Spam welcher nur einige Zeichen kurz ist. Diesem Problem wollte ich durch Mindestlänge für Kommentare unter WordPress lösen. Das hilft dann nicht nur gegen Spam, sondern kurbelt auch ein wenig die Kommentarkultur an (so die wage Hoffnung).

Die Einstellungen von Yoast Comment Hacks

Die Einstellungen von Yoast Comment Hacks

Da WordPress von Haus aus die Einstellung einer Mindestlänge für Kommentare nicht zulässt, bediene ich mich des Plugins Yoast Comment Hacks.

Yoast Comment Hacks
Preis: Kostenlos

In den Einstellungen des Plugins kann nach der Installation des Plugins unter anderem eine Mindestlänge für Kommentare eingestellt werden. Daneben unterstützt das Plugin noch ein Reihe von anderen Funktionen welche sich auf das Handling von Kommentaren beziehen.

MediaWiki Historie bereinigen

Wenn man Artikel in einer MediaWiki löscht, so werden diese Artikel und deren Historie weiterhin vorgehalten. Problematisch wird dies wenn man z.B. eine größere Menge an Artikeln entfernt hat. So etwas kann unter anderem im Rahmen der Spam-Bekämpfung vorkommen. Im maintenance-Ordner der MediaWiki-Installation gibt es für solche Zwecke das Skript deleteArchivedRevisions.php. Wird dieses auf der Konsole ausgeführt:

php deleteArchivedRevisions.php --delete

wird die Datenbank um historische Einträge bereinigt. Die Historie von nicht gelöschten Artikeln wird dabei beibehalten, so das wirklich nur der unnötige Ballast entfernt wird.

MediaWiki Spam effektiv entfernen

Eine meiner MediaWikis welche ich betreibe wurde in den letzten Tagen zugespamt. So wurden mehrere zehntausend Seiten und Nutzer angelegt. Diese von Hand zu entfernen wäre ein sehr zeit- und nervenraubendes Unterfangen. Mit der Erweiterung BlockAndNuke, kann man diesen Vorgang beschleunigen.

BlockAndNuke listet die Spammer auf

BlockAndNuke listet die Spammer auf

Nach der Installation stellt die Erweiterung eine Spezialseite zur Verfügung. Dort sind die Nutzer aufgelistet, welche entfernt werden sollen. Bei der Entfernung werden auch die jeweiligen Beiträge des Nutzers entfernt. Problematisch wird das ganze bei mehreren tausend oder zehntausend Nutzern und Beiträgen. Dafür gibt es im Ordner BlockAndNuke die Kommandozeilenvariante mit dem Namen ban.php. Mittels:

php ban.php --hammer

kann der Vorgang auf der Kommandozeile ausgeführt werden. Dabei wird whitelist.txt Datei berücksichtigt in welcher sich die Nutzer befinden sollten welche nicht zu den Spammern zählen. Je nach Anzahl der löschenden Nutzer und Beiträge kann der Vorgang einige Zeit in Anspruch nehmen.