WP-CLI: Wordpress-Administration auf der Linux Kommandozeile
Seiteninhalte
Mit WP-CLI, einer Sammlung von Linux Kommandozeilen-Tools zur Administration von WordPress, bin ich vor einigen Monaten in Berührung gekommen. Grund war bei mir der allmähliche Wechsel von meinen root-Servern hin zum Hosting bei All-Inkl und der Wunsch, mir einige administrative Aufgaben bei WordPress zu vereinfachen bzw. diese zu automatisieren. Lösungen für Search & Replace, schnelle Datenbank-Backups und das Updaten von WordPress und der eingerichteten Plugins sind noch lange nicht alle Funktionen von WP-CLI.
Da bei All-Inkl in den größeren Pakten SSH inklusive ist und ich sehr gern auf der Kommandozeile arbeite, stieß ich irgendwann auf WP-CLI. Ich installierte die Software und fasse das, wofür ich bislang mit WP-CLI nutze, in diesem Beitrag zusammen. In wie weit die hier vorgestellten WP-CLI-Beispiele auch bei Domainfactory, 1&1, Uberspace, Strato und so weiter funktionieren, kann ich nicht sagen.
Aber ihr könnt in den Kommentaren gern posten, bei welchem Hoster ihr seid und ob dort der Einsatz von WP-CLI möglich ist. Zudem ist es natürlich immer interessant zu erfahren, was ihr mit der Tool-Sammlung anstellt oder wie ihr bei bestimmten Aufgaben verfahrt bzw. mit welchen anderen Programmen und Scripts ihr WP-CLI kombiniert.
WP-CLI installieren
Hier am Beispiel von All-Inkl, welche diese Vorgehensweise auch auf ihren Hilfeseiten sehr gut dokumentiert haben. So oder so ähnlich sollte das auch bei anderen Hostern mit SSH-Zugriff funktionieren.
- im Kunden-Administrations-System (kurz KAS) SSH aktivieren. Der SSH-Nutzername wird angezeigt, das Passwort ist hierfür das selbe wie das vom Haupt-FTP-Nutzer dieses Accounts.
- Per SSH-Client, ich bevorzuge den guten alten Putty, auf der Linux-Konsole einloggen.
- Nach dem Login befindest du dich im Hauptverzeichnis (z.B. /www/htdocs/w1234567). Hier mit
mkdir wp-cli
ein neues Verzeichnis anlegen und
- in selbiges wechseln
cd wp-cli
- Die komprimierte Archivdatei in das wp-cli-Verzeichnis downloaden
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- und ausführbar machen
chmod +x wp-cli.phar
- Eine .user_bashrc mit dem Befehl
echo "alias wp='/www/htdocs/w1234567/wp-cli/wp-cli.phar'" >> /www/htdocs/w1234567/.user_bashrc
anlegen. Wichtig: Hierbei natürlich w1234567 durch den eigenen Account-Namen ersetzen!
- Mit
source /.bashrc
die soeben angelegte .user_bashrc aktivieren.
- Damit ist WP-CLI in diesem Account installiert und lässt sich sofort mit dem Alias wp nutzen.
- Ein kurzer Test:
wp help wp cli update
Weitere Hilfen rund um die Installation von WP-CLI findest du unter wp-cli.org. Eine Übersicht aller Kommandos und deren Parameter sind bei developer.wordpress.org aufgeführt. Noch umfassender wird das Thema unter make.wordpress.org behandelt.
Aktuelle WordPress-Version downloaden und WordPress einrichten
Wenn WP-CLI korrekt installiert wurde, kann nun das Arbeiten mit den Kommandozeilentools beginnen. Ich wechsele dazu in mein Website-Verzeichnis /meine-url.de und lade mir die aktuellste Version von WordPress herunter.
wp core download --locale=de_DE
Nach dem Download erfolgt in einer Zeile die Konfiguration für die Datenbank. Dabei wird die wp-config.php angelegt und auch die Sicherheitsschlüssel generiert.
wp config create --dbname=d0290a8a --dbuser=d0290a8a --dbpass='PUpmvUVuX74VZXe-v' --locale=de_DE
Mittels wp core install
ließe sich WordPress zwar auch direkt installieren. Da ich aber noch einige Anpassungen innerhalb der wp-config.php händisch vornehme, mache diese abschließenden Einstellungen lieber manuell.
Ich bearbeite die soeben erstellte wp-config.php mit meinem favorisierten Editor unter Linux
mcedit wp-config.php
Per Copy & Paste (Tastenkombination [Shift]+[Einfg] beim MCEdit) füge ich einige zusätzliche Einstellungen ein und passe die Informationen an die erforderlichen Gegebenheiten an:
$table_prefix = 'x2nb_'; define('UPLOADS', 'files' ); define('WP_HOME', 'https://meine-url.de/'); define('WP_SITEURL', 'https://meine-url.de/'); define('WPLANG', 'de_DE'); define('WP_POST_REVISIONS', 3); define('AUTOSAVE_INTERVAL', 160 ); define('WP_MEMORY_LIMIT', '128M' ); define('WP_CACHE', false ); define('FS_METHOD', 'direct');
Noch ein letzter Blick darauf, ob bei meinem Hoster SSL für diese Domain aktiviert ist und schon kann der erste Aufruf der neuen Adresse im Browser erfolgen, wodurch WordPress installiert wird.
WordPress Plugins installieren und aktivieren
Auch das geht sehr einfach mit WP-CLI.
wp plugin install {pluginname} --activate
Mit der Zeit hat sicher fast jeder eine Reihe Standard-Plugins, welche für die WordPress-Projekte zum Einsatz kommen. Bei mir sind etwa 6-12 Plugins, die, abhängig von der Art der Seite, eigentlich immer gebraucht werden und die ich ebenfalls direkt auf der Konsole installiere und aktiviere.
wp plugin install advanced-ads --activate wp plugin install antispam-bee --activate wp plugin install cachify --activate wp plugin install classic-editor --activate wp plugin install tablepress --activate wp plugin install responsive-lightbox-lite --activate wp plugin install shortcodes-ultimate --activate wp plugin install seo-by-rank-math --activate wp plugin install easy-table-of-contents --activate
Weitere Konfigurationen
Im nächsten Schritt nehme ich im WP-Backend die Einstellungen (Permalinks, Medien usw.) vor, lade ggf. ein Theme via FTP hoch und richte es ein. Zudem werden die Beispiel-Inhalte gelöscht. Die ersten beiden Seiten werden ebenfalls sofort angelegt: Impressum und Datenschutz. Ich habe hierfür meine Standardvorlage; wer hier etwas passendes für sich sucht, wird sicher unter e-recht24.de/impressum-generator.html und datenschutz-generator.de entsprechend fündig.
Sicherheitseinstellungen für WordPress
Wichtig noch das Thema Sicherheit! Neben einem vernünftigen und einmaligen Passwort, einer regelmäßigen Aktualisierung des WordPress-Kerns und der installierten Plugins, automatischer Backups und korrekter Datei-/Verzeichnisrechte, gibt es einige sinnvolle Einstellungen bei der .htaccess-Datei.
Die Einstellungen hier reichen vom Absichern wichtiger php-Dateien, dem Verhindern typischer URL-Manipulationen, über SEO-relevante Anpassungen, bis hin zum Beschleunigen der WordPress-Seite. Wie du deine wp-login.php durch einen zusätzlichen Passwortschutz vor Brute-Force-Attacken absicherst, ist bei fastwp.de vorbildlich beschrieben.
Fortsetzung folgt, u.a. mit:
- WordPress-Updates mit WP-CLI vornehmen
- Datenbank sichern und zurück spielen
- Backup einrichten
- Search & Replace
- …