Per WP-CLI von einem lokalen Server einen Befehl auf Uberspace ausführen

Der Titel ist etwas sperrig, es geht um folgendes: ich wollte über die GitLab CI (der lokale Server) einen WP-CLI-Befehl auf einem meiner Uberspaces ausführen. Seit Version 0.24.0 der WP-CLI gibt es dafür über das --ssh-Argument auch einen eigentlich einfachen Weg, bei dem ich allerdings auf ein Hindernis gestoßen bin.

Die Nutzung von --ssh sieht beispielhaft so aus (parser ist kein Standard-Kommando der WP-CLI sondern kommt vom phpdoc-parser):

wp parser create wp-content/themes-for-docblock-parser/ --user=florian --url=example.com --allow-root --ssh=user@example.com/path/to/wp/install/
Code-Sprache: Bash (bash)

Das --allow-root ist nur notwendig, wenn der Befehl von einem Root-Nutzer ausgeführt werden soll (was auf der GitLab CI der Fall ist). Zunächst kommen die ganzen normalen Argumente, und ganz hinten mit --ssh der Server und Pfad, auf dem es ausgeführt werden soll. Natürlich müsst ihr vorher alles vorbereitet haben, dass die SSH-Verbindung mit dem Server hergestellt werden kann – wie das zum Beispiel für die GitLab CI aussehen kann, könnt ihr in meinem Post »Mit GitLab CI automatisch auf Staging- und Produktiv-Server deployen« sehen.

Weitere Voraussetzung ist, dass auf beiden Servern WP-CLI installiert und über den wp-Befehl zugänglich ist. Und da kommen wir zu dem Problem. Die CLI war auf beiden Server installiert, aber ich habe in der GitLab CI beim Ausführen des obigen Befehls immer folgende Rückgabe bekommen:

bash: wp: command not found
Code-Sprache: Bash (bash)

Das konnte ich mir nicht wirklich erklären, habe aber schnell Hilfe von Bernhard und Alain bekommen. Das Problem ist, dass bei dieser Art Verbindung das WP-CLI-Skript auf dem Uberspace nicht im PATH gesetzt wird, also nicht von überall nutzbar ist sondern nur in dem Pfad, in dem das Skript liegt. Die Lösung (vermutlich nur eine von mehreren) auf Uberspace ist folgende Zeile am Ende der ~/.bashrc:

export PATH=$PATH:$HOME/bin
Code-Sprache: Bash (bash)

Der Pfad muss natürlich entsprechend auf das Verzeichnis gesetzt werden, in dem das WP-CLI-Skript liegt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert