WP CLI: Automatisierung für Wordpress

Lukasz Gawrys
Lukasz Gawrys
19. April 2019

WP CLI ist ein Tool für automatisierte Verwaltung einer WordPress Installation via Kommandozeilen Interface. Mit WP CLI kann man leicht WordPress Core sowie WordPress Plugins mit einem Befehl installieren, Plugins aktivieren, löschen, Multisite verwalten und einiges mehr.
Ein Kommandozeilen Interface ist ein großer Schritt für professionelles Arbeiten mit WordPress und hilft enorm vor allem wenn man mit modernen Deployment-Ansätzen arbeitet und auf Continuous Deployment setzt oder mehrere Umgebungen wie stage, test, production verwaltet und mühelos dort WordPress Websites managen möchte.

Installation von WP CLI

Für die Installation benötigt man die Phar Datei der Bibliothek. Bevor dies erfolgt, muss noch sichergestellt werden, dass Ihr Server die Mindestanforderungen erfüllt.
Anforderungen:
UNIX-Umgebung ( LINUX, OS X, FreeBSD, Cygwin)
PHP 5.3.29 oder höher
Wordpress 3.7 oder höher
Die Phar Datei wird am einfachsten mittels wget oder curl heruntergeladen:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Mann sollte noch kurz prüfen, ob es funktioniert.

 $ php wp-cli.phar --info

Als letzten Schritt kann man die phar-Datei ausführbar machen, so dass es im System durch bloßes Tippen von wp aufrufbar ist.

$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

Zum einen muss die wp-cli.phar Datei executable sein und zum anderen muss sich die Datei irgendwo in PATH im System befinden und das ist meistens der Fall unter /usr/local/bin
Um es final zu bestätigen, dass alle Operationen erfolgreich waren, kann man einfach folgenden Befehl ausführen:

$ wp --info
PHP binary: /usr/bin/php5
PHP version: 5.5.9-1ubuntu4.14
php.ini used: /etc/php5/cli/php.ini
WP-CLI root dir: /home/wp-cli/.wp-cli
WP-CLI packages dir: /home/wp-cli/.wp-cli/packages/
WP-CLI global config: /home/wp-cli/.wp-cli/config.yml
WP-CLI project config:
WP-CLI version: 0.25.0

WordPress Installation mit WordPress CLI

Mit folgenden Befehlen können Sie WordPress via Kommandozeilen Interface installieren.

wp core download

Damit werden alle WordPress Core Dateien heruntergeladen.

wp config create --dbname=DB_NAME --dbuser=DB_USER --dbpass=DB_PASS --dbhost=DB_HOST --locale=WP_LOCALE

So legen Sie eigene wp-config.php Datei mit den von Ihnen definierten Werten.

wp core install --url=$WP_URL --title=$WP_TITLE --admin_user=$WP_ADMIN_USER --admin_password=$WP_ADMIN_PASSWORD --admin_email=$WP_ADMIN_EMAIL

Und als letzter Schritt kommt die eigentliche Installation. Es werden damit die Tabellen in Ihrer Datenbank angelegt, der Admin-User wird erstellt und Ihre WordPress-Seite ist arbeitsfähig.
Sie können diesen Prozess noch weiter optimieren und z.B einen bash-Script schreiben, der diese Arbeit für Sie erledigt.

WP CLI Dotenv Plugin

Lassen Sie uns ein Beispiel von einem solchen Script anschauen.
Für diesen Zweck wird ein zusätzliches Package benötigt. Diese ist zwar optional aber wir raten dringend dazu, denn es handelt sich um die Sicherheit. Aus Sicherheitsgründen wollen wir die Passwörter und andere sensible Daten nicht direkt in dem Script speichert sondern in einer versteckten Datei, die mit . anfängt. In diesem konkreten Fall wird es .env sein. .env auch dotenv genannt ist ein Standard für Lagerung von Passwörtern auf dem Server, die für die Anwendung unmittelbar notwendig sind.
Dieses Package wird also folgend installiert

wp package install aaemnnosttv/wp-cli-dotenv-command:^1.0

Sie müssen noch manuell die .env Datei anlegen, die ähnlich aussieht:

DB_NAME=xxx
DB_USER=xxx
DB_PASS=xxx
DB_HOST=xxx
.
.
.
N

Wenn dies erfolgt ist, können Sie zum nächsten Schritt kommen.

#!/bin/bash
DB_NAME=$(wp dotenv get DB_NAME)
DB_USER=$(wp dotenv get DB_USER)
DB_PASS=$(wp dotenv get DB_PASS)
DB_HOST=$(wp dotenv get DB_HOST)
WP_LOCALE=$(wp dotenv get WP_LOCALE)
WP_URL=$(wp dotenv get WP_URL)
WP_TITLE=$(wp dotenv get WP_TITLE)
WP_ADMIN_USER=$(wp dotenv get WP_ADMIN_USER)
WP_ADMIN_PASSWORD=$(wp dotenv get WP_ADMIN_PASSWORD)
WP_ADMIN_EMAIL=$(wp dotenv get WP_ADMINa_EMAIL)
wp core download
wp config create --dbname=$DB_NAME --dbuser=$DB_USER --dbpass=$DB_PASS --dbhost=$DB_HOST --locale=$WP_LOCALE
wp core install --url=$WP_URL --title=$WP_TITLE --admin_user=$WP_ADMIN_USER --admin_password=$WP_ADMIN_PASSWORD --admin_email=$WP_ADMIN_EMAIL
printf 'everything installed \n'

Was sehen Sie hier? Da es ein shell Script ist, benötigt man die Initialisierung mit shebang.
Weiterhin sehen Sie die Definition von lokalen Variablen, die durch die Anwendung von wp-cli-dotenv-command mit richtigen Werten befüllt werden. Man greift hier auf folgendes Kommando: wp dotenv get DB_NAME zurück. Dieser Aufruf soll genau den Wert für diesen Key von der .env Datei bereitstellen. Zum Schluss sehen Sie schon Ihnen bekannte Befehle wie wp core, wp config, wp install die den Gebrauch von lokalen Variablen mit richtigen Zugangsdaten machen.