Verwendung von WP-CLI auf einem cPanel-Hosting-Account: die gängigsten Befehle

WordPress 6 Min. Lesezeit

WP-CLI ist die Befehlszeilen-Oberfläche von WordPress: Mit ihr können Sie Plugins deaktivieren oder aktualisieren, selbst wenn das Admin-Panel nicht geladen wird, die Adresse Ihrer Website ändern und Aufgaben in Sekundenschnelle erledigen, für die im Browser sonst viele Klicks erforderlich wären. In unseren cPanel-Hosting-Paketen ist der Befehl „wp“ vorinstalliert und kann in den Paketen mit SSH-Zugriff (cP Premium, cP Pro, cP Pro 100) genutzt werden.

Der Artikel erläutert, wie Sie sicher arbeiten können, worauf Sie auf den cPanel-Servern von aWh achten sollten, und fasst die im Alltag häufig verwendeten Befehle zusammen.

Das Terminal öffnen

  • cPanel-Terminal: Klicken Sie in der cPanel-Gruppe „Erweitert“ auf das Terminal-Symbol. Die sich im Browser öffnende Befehlszeile entspricht einer SSH-Verbindung und läuft standardmäßig unter Ihrem eigenen Benutzerkonto.
  • SSH: Sie können sich von Ihrem eigenen Rechner aus über Port 4231 mit einem SSH-Schlüssel anmelden (eine Anmeldung per Passwort ist nicht möglich). Die Einrichtung des Schlüssels wird im Artikel zur Erstellung eines SSH-Schlüssels beschrieben.

cPanel-Terminal: WP-CLI-Befehle im Verzeichnis der Staging-Website

Arbeiten Sie stets auf der richtigen Website

Das WP-CLI arbeitet von dem Verzeichnis aus, in dem es sich gerade befindet, oder von dem, das Sie mit dem Schalter „--path“ angeben. Wenn auf Ihrem WordPress-Hosting mehrere WordPress-Instanzen laufen (beispielsweise eine Produktionsseite und eine Staging-Kopie), führt ein mit „wp plugin deactivate --all“ in einem falschen Verzeichnis ausgeführter Befehl dazu, dass die andere Website deaktiviert wird. Überprüfen Sie daher zu Beginn jeder Arbeit:

cd ~/public_html
pwd
wp core is-installed && wp option get siteurl

Wenn „siteurl“ nicht die Adresse der Website ist, an der Sie arbeiten wollten, befinden Sie sich im falschen Ordner.

Wo befinden sich die Websites? Die Hauptdomain befindet sich im Ordner „public_html“. Beim Hinzufügen einer neuen Domain oder Subdomain erstellt cPanel den Ordner mit dem Namen der Domain neben „public_html“: Die WordPress-Installation der Subdomain „staging.pelda.hu“ befindet sich beispielsweise im Ordner „~/staging.pelda.hu“ und nicht unter „public_html“. Den genauen Pfad sehen Sie auf der Seite „Domains“ in der Spalte „Dokumentenstamm“ (Details: Was ist das Stammverzeichnis meiner Website?).

Bei einmaligen Befehlen geben Sie anstelle des Ordnerwechsels den Pfad an:

wp --path=/home/felhasznalonev/staging.pelda.hu plugin list

Besonderheiten der cPanel-Server von aWh

  • Die PHP-Version: Das Befehlszeilen-php und somit auch das WP-CLI verwenden die PHP-Version, die Sie auf der Seite „Select PHP Version“ (PHP-Erweiterungen und -Einstellungen) festgelegt haben. Das Befehlszeilen-PHP unterliegt keiner Speicherbegrenzung, weshalb ein umfangreicher Import hier auch dann erfolgreich ausgeführt wird, wenn er im Browser ins Stocken gerät.
  • Einige der „wp db“-Befehle funktionieren nicht. Aufgrund der Sicherheitseinstellungen kann PHP keine externen Programme starten (proc_open ist deaktiviert), weshalb die Befehle „wp db export“, „wp db import“, „wp db query“, „wp db check“ und „wp db cli“ mit folgendem Fehler abbrechen: „The PHP functions proc_open() and/or proc_close() are disabled“. Aus demselben Grund gibt auch „wp --info“ am Ende der Ausgabe einen Fehler aus. Die Befehle „wp db prefix“, „wp db tables“, „wp db size“ und „wp db search“ funktionieren ebenso wie „wp search-replace“ und „wp option“. Verwenden Sie zum Sichern der Datenbank und für SQL-Abfragen direkt die Befehle „mysqldump“ und „mysql“ (siehe unten) oder phpMyAdmin.
  • Das Präfix der Tabellen lautet nicht immer „wp_“. Das WP Toolkit vergibt bei der Installation ein zufälliges Präfix (beispielsweise „1vL7334_options“). Das eigene Präfix wird durch die Einstellung „wp db prefix“ festgelegt; dieses verwenden Sie in Ihren SQL-Abfragen.

Datenbanksicherung und SQL mit dem Befehl „mysql“

Bei den Befehlen „mysqldump“ und „mysql“ müssen der Datenbankbenutzer und das Passwort angegeben werden. Damit das Passwort nicht in der Befehlszeile (und im Befehlsverlauf) erscheint, schreiben Sie es aus den Daten der Datei „wp-config.php“ in eine Datei, die nur für Sie lesbar ist:

cd ~/public_html
umask 077
printf '[client]\nuser=%s\npassword="%s"\nhost=localhost\n' \
  "$(wp config get DB_USER)" "$(wp config get DB_PASSWORD)" > ~/.my.cnf

Der host sollte immer „localhost“ lauten, auch wenn in der Datei „wp-config.php“ „localhost:3306“ angegeben ist. Anschließend:

# Mentés a webről nem elérhető home könyvtárba
mysqldump --single-transaction --no-tablespaces "$(wp config get DB_NAME)" > ~/mentes-$(date +%F).sql
tail -1 ~/mentes-$(date +%F).sql

# Lekérdezés
mysql "$(wp config get DB_NAME)" -e "SELECT COUNT(*) FROM $(wp db prefix)posts"

# Visszaállítás a mentésből
mysql "$(wp config get DB_NAME)" < ~/mentes-2026-10-27.sql

Die letzte Zeile einer vollständigen Sicherung -- Dump completed on …; fehlt diese, wurde die Sicherung abgebrochen. Wenn Sie die Datei ~/.my.cnf nach Abschluss der Arbeit nicht mehr benötigen, löschen Sie sie (rm ~/.my.cnf), und sollten Sie das Datenbankpasswort ändern, erstellen Sie die Datei erneut.

Gehen Sie vorsichtig mit Änderungsbefehlen um

  • Probieren Sie es zunächst aus. Wo ein --dry-run-Schalter vorhanden ist (beispielsweise beim Befehl „wp search-replace“), führen Sie diesen zunächst aus, überprüfen Sie das Ergebnis und führen Sie den Vorgang erst danach live durch.
  • Sicherung im Vorfeld. Nach einer fehlerhaften Massenoperation können Sie auch aus der täglichen Sicherung wiederherstellen (Wiederherstellung aus JetBackup), doch ein aktueller mysqldump ist schneller.
  • Der Wartungsmodus verbirgt den unfertigen Zustand vor den Besuchern:
wp maintenance-mode activate
wp plugin update --all
wp maintenance-mode deactivate
  • Protokollieren Sie die Sitzung, wenn Sie viele Schritte ausführen: Nach dem Befehl „script ~/wp-cli-$(date +%F-%H%M).log“ wird alles, was Sie eingeben und was der Rechner antwortet, in die Datei geschrieben (Beenden: „exit“).

Die häufigsten Befehle

Status der Website

wp core version                      # WordPress-verzió
wp core check-update                 # van-e új verzió
wp core verify-checksums             # sérültek-e az alapfájlok
wp option get siteurl                # a webhely címe
wp option get home
wp db size --size_format=mb          # az adatbázis mérete

Plugins und Themes

wp plugin list
wp plugin list --update=available    # amelyekhez van frissítés
wp plugin install contact-form-7 --activate
wp plugin deactivate contact-form-7
wp plugin update --all
wp plugin update woocommerce --version=9.8.1   # adott verzióra
wp plugin delete hello

wp theme list
wp theme activate twentytwentyfive
wp theme update --all

Benutzer

wp user list --role=administrator
wp user create szerkeszto szerkeszto@pelda.hu --role=editor
wp user update 1 --user_pass='ÚjErősJelszó'
wp user session destroy 1 --all      # kijelentkeztetés minden eszközről
wp user delete 5 --reassign=1        # a tartalmai az 1-es felhasználóhoz kerülnek

Einstellungen, temporäre Daten, Cache

wp option get blogname
wp option update blogname "Új név"
wp transient delete --expired        # lejárt átmeneti adatok törlése
wp cache flush                       # objektum-gyorsítótár ürítése
wp rewrite flush                     # közvetlen hivatkozások újraépítése

Geplante Aufgaben

wp cron event list
wp cron event run --due-now          # az esedékes feladatok futtatása
wp cron test

Medien

wp media regenerate --yes            # bélyegképek újragenerálása
wp media import ~/kep.jpg --title="Kép címe"

Adressänderung

wp search-replace 'regi-domain.hu' 'uj-domain.hu' --all-tables --skip-columns=guid --dry-run

Die Änderung der Adresse wird im Artikel über die URL-Änderung nach einem Domainwechsel ausführlich beschrieben.

Konfiguration

wp config get DB_NAME
wp config set WP_DEBUG true --raw
wp config list

Der Schalter --raw schreibt einen logischen Wert (true, false) oder eine Zahl ohne Anführungszeichen in die Datei; bei Text wird er weggelassen.

Die meisten Befehle geben das Ergebnis mit den Optionen „--format=json“, „--format=csv“ oder „--format=count“ auch in einem anderen Format aus, und mit dem Befehl „wp help <parancs>“ werden alle verfügbaren Optionen angezeigt. Die Neuinstallation der WordPress-Kern-Dateien wird in einem separaten Artikel beschrieben: Neuinstallation von WordPress mit WP-CLI.

Falls Sie keinen SSH-Zugang haben

Das cP Basic-Paket enthält weder SSH noch Terminal. In diesem Fall können Sie die meisten Aufgaben über die WP Toolkit-Oberfläche (WordPress-Verwaltung) ausführen: Aktualisierungen, Verwaltung von Plugins und Themes, Backups und Klonen. Sie können auch WP-CLI-Befehle ausführen: Klicken Sie auf der Website auf den Link „WP-CLI“ und geben Sie den Befehl ohne das Wort „wp“ (z. B. „plugin list“) in das Feld „Befehl“ des sich öffnenden Fensters ein. Das WP Toolkit zeigt das Ergebnis im unteren Bereich des Fensters an.

WP Toolkit: Das Befehlsfeld des WP-CLI-Fensters

Wenn Sie regelmäßig mit der Befehlszeile arbeiten, empfiehlt es sich, zu einem Paket mit SSH-Zugang zu wechseln.

Zurück: WordPress-Artikel (43)