Run WP-CLI command on Uberspace from local Server

I wanted to run a WP-CLI command from GitLab CI (local server) on one of my Uberspaces. Since version 0.24.0, the WP-CLI provides the --ssh argument, which lets us do exactly that. It should be easy, but I come across one small problem.

The usage of the --ssh looks like that (parser is no default WP-CLI command but comes from the 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/

The --allow-root is only necessary if the command is run by a root user (which is the case on GitLab CI). At first, there come the common command arguments, and at the end with --ssh the remote server and path, where the command should be run. Of course, you need to make sure the SSH connection works — you can find an example for the GitLab CI in my post »Auto deployment to staging and production server with GitLab CI«.

One more requirement is that you have WP-CLI installed on both servers and that it is reachable via the wp command. And here comes the problem: The CLI was installed on both servers, but after running the command from above on the CI I get:

bash: wp: command not foundCode language: HTTP (http)

I had no idea why, but got help from Bernhard and Alain. The problem is that the Uberspace does not set a PATH variable for the CLI script if there is a connection via the WP-CLI --ssh, so the script can only be run in the directory it lives. The solution (likely only one of many) on Uberspace is the following line at the end of ~/.bashrc:

export PATH=$PATH:$HOME/binCode language: PHP (php)

Of course, you need to modify the path to the directory you have installed the WP-CLI in.

Leave a Reply

Your email address will not be published. Required fields are marked *

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)