WP-CLI auf Webhosting installieren
Du hast mehrere WordPress-Installation welche du verwaltest? Mit dem Open-Source-Tool «WordPress Command Line Interface» (WP-CLI), lassen sich WordPress-Installationen komplett über die Kommandozeile verwalten, ohne dass du dich in jede einzelne Installation einloggen musst. Ausserdem lässt sich WP-CLI mit Scripts erweitern und so zusätzlich automatisieren.
In diesem Artikel beschreiben wir, wie man WP-CLI über die Shell installiert, eine WordPress-Installation aufsetzt, WordPress aktualisiert, Plugins installiert und Beiträge bearbeitet.
Voraussetzung SSH
Damit du WP-CLI nutzen kannst, muss dein Webhosting per SSH erreichbar sein. Ausserdem solltest du ein wenig mit der Arbeit auf der Konsole vertraut sein, da Änderungen in den meisten Fällen nicht rückgängig gemacht werden können.
Bei cyon haben alle Webhosting-Angebote SSH-Zugang. Im Blogpost «SSH: Ein mächtiges Werkzeug für Ihr Webhosting» haben wir einige Tipps für den Umgang mit der Kommandozeile.
Übersicht
WP-CLI bietet eine Menge Funktionen. Wir haben die wichtigsten für dich zusammengetragen:
- WP-CLI installieren
- Tab-Completion hinzufügen
- WordPress installieren
- Plugins installieren
- Posts erstellen und editieren
- Medien bearbeiten
- WordPress aktualisieren
- Datenbankabfragen
- Search & Replace
- Integrierte Hilfe
WP-CLI installieren
Damit WP-CLI genutzt werden kann, muss das Tool zuerst installiert werden. Dies lässt sich in wenigen Schritten erledigen. Wir empfehlen die folgende Methode:
Verbinde dich als erstes per SSH zu deinem Webhosting und wechsle mit dem Befehl cd ~
ins Home-Verzeichnis. Lade dann WP-CLI auf dein Webhosting:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Damit WP-CLI überall in deiner SSH-Session ausführbar ist, verschiebe das Programm ins Verzeichnis bin
. Besteht das Verzeichnis noch nicht, lege es mit dem Befehl mkdir bin
an. Mit mv wp-cli.phar bin/wp
verschiebst du die Datei und benennst sie gleichzeitig in wp
um. So ist das Programm später unter dem Befehl wp
ansprechbar. Schlussendlich mache die Datei mit chmod u+x bin/wp
ausführbar.
Prüfe nun mit wp --info
, ob das Tool erfolgreich installiert wurde.
Sieht die Ausgabe etwa so aus, dann hat alles funktioniert:
PHP binary: /opt/cyon/php55/usr/bin/php PHP version: 5.5.30 php.ini used: /opt/cyon/php55/etc/php-cli.ini WP-CLI root dir: phar://wp-cli.phar WP-CLI global config: WP-CLI project config: WP-CLI version: 0.21.1
Erhältst du die Meldung -bash: wp: command not found
ist das Verzeichnis bin
nicht in der PATH-Variable hinterlegt. Erweitere in diesem Fall die Datei .bash_profile
mit folgenden beiden Zeilen:
PATH=$PATH:$HOME/bin export PATH
WP-CLI steht jetzt unter dem Befehl wp
zur Verfügung.
Tab-Completion hinzufügen
Wer oft in einer Konsole arbeitet, schätzt die Funktion Tab-Completion. Mit der Tabulatortaste vervollständigt der Computer eingetippte Befehle automatisch oder liefert eine Liste mit Optionen, wenn mehrere Möglichkeiten zur Verfügung stehen. Mit Tab-Completion arbeitet es sich nicht nur schneller, sie verhindert auch Tippfehler. Natürlich lässt sich WP-CLI ebenfalls mit einer Tab-Completion erweitern.
Installiere die Funktion wie folgt ins Verzeichnis ~/.wp-cli
:
Erstelle das Verzeichnis mit mkdir ~/.wp-cli
und wechsle mit cd ~/.wp-cli
in den soeben erstellten Ordner. Lade mit folgendem Befehl das passende Script herunter:
curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash
Füge die Funktion mit echo "source ~/.wp-cli/wp-completion.bash" >> ~/.bash_profile
deiner .bash_profile
hinzu. Damit die neue Konfiguration geladen wird, führe source ~/.bash_profile
aus.
Hat alles wie gewünscht funktioniert, liefert wp <TAB><TAB>
eine Liste mit Optionen, die WP-CLI bietet.
WordPress installieren
Mit WP-CLI lässt sich WordPress (fast) ohne Browser installieren und die WordPress-Konfigurationsdatei direkt auf dem Webhosting generieren.
Als erstes muss die gewünschte Domain via my.cyon eingerichtet werden. Merke dir das Zielverzeichnis der Domain, du benötigst es später wieder.
WordPress setzt ausserdem eine Datenbank voraus, welche du ebenfalls vorgängig im my.cyon-Konto erstellst. Der Datenbankname, Anmeldename und dessen Passwort werden später benötigt, um die Konfiguration auf dem Webhosting zu erstellen. Dann kann es mit WP-CLI losgehen.
Verbinde dich mit dem Befehl ssh olivero2@oliverorange.ch
zum Webhosting. olivero2
ersetzt du durch den Anmeldenamen deines Webhostings, die Domain durch deine eigene oder durch den Servernamen.
Wechsle mit cd ~/public_html/<installationspfad>
in das Verzeichnis, das du zuvor für die gewünschte Domain definiert hast und lade mit wp core download
die aktuellste WordPress-Version auf dein Webhosting. Mit dem Parameter --version={Versionsnummer}
lässt sich die WordPress-Version spezifizieren, falls gewünscht.
Jetzt befindet sich WordPress auf dem Webhosting und ist bereit für die Konfiguration. Der folgende Befehl erstellt die Datei wp-config.php
:
wp core config --dbname={Datenbankname} --dbuser={Anmeldename} --dbpass='{Passwort Anmeldename}'
Ersetze dabei {Datenbankname}
, {Anmeldename}
und {Passwort Anmeldename}
mit den Daten aus deinem my.cyon.
Anschliessend kann die Installation mit wp core install
und den folgenden Parametern abgeschlossen werden:
- url: Die Domain, unter welcher WordPress erreichbar ist
- title: Titel der Website
- admin_user: Anmeldename, mit welchem du dich ins Backend von WordPress einloggst
- admin_password: Passwort für den Anmeldenamen
- admin_email: E-Mail-Adresse für das Konto
Im Endeffekt sieht der benötigte Befehl folgendermassen aus:
wp core install --url={deine Domain} --title={Titel der Website} --admin_user={Anmeldename} --admin_password='{Passwort für Anmeldename}' --admin_email={E-Mail-Adresse}
Hat alles geklappt, meldet WP-CLI Success: WordPress installed successfully.
und WordPress ist unter der konfigurierten Domain erreichbar.
Enthält dein Passwort das einfache Quota-Zeichen '
, so empfehlen wir dir ein anderes Passwort zu wählen, da dies zu Problemen mit WordPress führt.
Plugins installieren
Nebst dem WordPress-Core lassen sich mit WP-CLI auch Plugins komfortabel auf der Kommandozeile installieren. Wenn du nicht sicher bist, wie ein gewünschtes Plugin genau heisst, dann kannst du mit dem Befehl wp plugin search <Suchbegriff>
in der Plugin-Datenbank suchen. Wir möchten in diesem Fall das beliebte SEO-Plugin von Yoast installieren. Mit wp plugin search yoast
ist das Plugin schnell gefunden.
Success: Showing 10 of 280 plugins. +---------------------------+----------------+--------+ | name | slug | rating | +---------------------------+----------------+--------+ | Yoast SEO | wordpress-seo | 82 |
Merke dir den «Slug» in der zweiten Spalte, der in diesem Fall wordpress-seo
heisst.
Mit wp plugin install wordpress-seo
ist das Plugin dann auch schon installiert, jedoch noch inaktiv.
Der Befehl wp plugin list
fördert eine übersichtliche Tabelle mit allen installierten Plugins und deren Status zu Tage:
+----------------------+----------+-----------+---------+ | name | status | update | version | +----------------------+----------+-----------+---------+ | akismet | active | none | 3.1.7 | | hello | inactive | none | 1.6 | | wordpress-seo | inactive | none | 3.0.7 | +----------------------+----------+-----------+---------+
Mit wp plugin activate wordpress-seo
aktivierst du das soeben installierte Plugin.
Posts erstellen und bearbeiten
Nicht nur WordPress-Core und Plugins lassen sich mit WP-CLI installieren. Auch Posts können direkt auf der Kommandozeile erstellt und bearbeitet werden.
wp post create --post_status=publish --post_title="Erster Post von der CLI" --edit
Der oben stehende Befehl erstellt einen neuen Post mit dem Titel «Erster Post von der CLI», publiziert diesen und öffnet automatisch den in der Shell definierten Editor, um den Post zu bearbeiten.
Eine Liste aller Posts generierst du mit wp post list
. Die Liste enthält unter anderem die ID jedes Posts, mit der du gewünschte Posts über WP-CLI ansteuern kannst.
Der Befehl wp post edit 7
öffnet den Post mit der ID 7 im konfigurierten Editor (in unserem Fall vim).
Medien bearbeiten
Eine grosse Anzahl Medien wie Bilder lassen sich in WordPress über das Webinterface nur mühsam bearbeiten. Mit WP-CLI bearbeitest du problemlos mehrere Bilder auf einen Schlag. So kannst du zum Beispiel mit dem Befehl wp media regenerate
die Thumbnails sämtlicher Bilder neu generieren lassen.
Wenn du eine grosse Menge an Bildern in WordPress importieren möchtest, bietet sich der folgende Befehl an: wp media import <Ordnername>
. Er bewirkt, dass alle Dateien im angegebenen Ordner importiert werden.
WordPress aktualisieren
Eine WordPress-Installation will gewartet sein. Mit Hilfe von WP-CLI lässt sich eine Installation kinderleicht aktualisieren.
Die folgenden beiden Befehle aktualisieren die Installation und deren Datenbank:
wp core update
wp core update-db
Auch Plugins und Themes können mit jeweils einem Befehl auf den aktuellsten Stand gebracht werden:
wp plugin update --all
wp theme update --all
Die oben genannten Beispiele müssen jeweils pro Installation durchgeführt werden. Noch effizienter wäre es, wenn dies für alle WordPress-Installationen auf dem gleichen Server mit einem Script erledigt werden könnte. Das lässt sich mit diesem kleinen Bash-Script realisieren:
#!/bin/bash declare -a sites=('/home/<Anmeldename>/public_html/site1' '/home/<Anmeldename>/public_html/site2' '/home/<Anmeldename>/public_html/site3') for site in "${sites[@]}"; do wp --path=$site core update done
Wir raten dir vor Updates immer ein Backup zu erstellen. Ein Backup der Datenbank kann bequem über WP-CLI mit dem Befehl wp db export backup.sql
erfolgen.
Datenbankabfragen
Nicht nur Datenbankexporte lassen sich mit WP-CLI anfertigen. Auch der Import vonSQL-Dateien ist möglich. Der Befehl wp db import backup.sql
importiert die Datei backup.sql
und anschliessend lässt sich die Datenbank mit wp db optimize
optimieren. Selbst Datenbankabfragen sind möglich. wp db query "SELECT id FROM wp_users;"
gibt zum Beispiel alle User-IDs zurück.
Search & Replace
Um Zeichenketten zu suchen und zu ersetzen, kann man sich mit Plugins, Tools wie phpMyAdmin oder dem Absetzen von SQL-Befehlen behelfen. Natürlich hat WP-CLI auch für diese Aufgabe den passenden Befehl parat. Wenn die Entwicklung deiner WordPress-Website auf einem anderen Server stattgefunden hat, dann müssen nach dem Deployment auf dem produktiven Server die URLs angepasst werden. Oder du aktivierst ein SSL-Zertifikat und möchtest alle URLs umschreiben, um Mixed Content zu verhindern. Mit folgendem Befehl ist diese Aufgabe in einem Schritt erledigt:
wp search-replace 'http://oliverorange.ch' 'https://oliverorange.ch'
Um eine Liste mit allen betroffenen Tabellen und Spalten zu erhalten, geben einfach --dry-run
als Parameter mit:
wp search-replace --dry-run 'http://oliverorange.ch' 'https://oliverorange.ch'
Integrierte Hilfe
Du siehst also, WP-CLI ist mächtig. Zum Glück lässt sich für jeden möglichen Befehl eine Beschreibung anzeigen. Mit wp help <befehl>
lässt sich der Hilfetext für den gewünschten Befehl aufrufen. So gibt wp help plugin
die Möglichkeiten aus, die für das Kommando plugin
bereitstehen:
NAME wp plugin DESCRIPTION Manage plugins. SYNOPSIS wp plugin <command> SUBCOMMANDS activate Activate a plugin. deactivate Deactivate a plugin. delete Delete plugin files. get Get a plugin. install Install a plugin. ...
Eine komplette Liste aller Befehle und die entsprechende Erklärung dazu, findest du in der Dokumentation von WP-CLI.
Sackmesser unter den WordPress-Tools
WP-CLI kann einen grossen Mehrwert bringen, wenn gleich mehrere WordPress-Installationen verwaltet werden müssen. Ausserdem lassen sich mit dem Tool mühsame und sich oft wiederholende Aufgaben bequem mit einem Script automatisieren. WP-CLI bietet bereits eine mächtige Grundausstattung an möglichen Befehlen und lässt sich zusätzlich mit eigenen Befehlen erweitern. Nicht zuletzt können Funktionen wie wp search-replace
sogar ganze Plugins ersetzen.
Wenn du noch mehr zu WP-CLI erfahren möchtest, empfehlen wir dir diese Websites:
- Kategorien
- WordPress