Whenever a host doesn't have WP-CLI installed by default, I get sad 🙁 this powerful WordPress management tool isn't available! Luckily it is easy to install WP-CLI without root or sudo access via SSH.
Following this method you will still be able to use WP-CLI just like you can when it is installed the more traditional way with root and placed in the /usr/bin
or /usr/bin/local folder
.
This post will show you how to install WP-CLI on almost any Linux distribution like CentOS, debian, Ubuntu etc as long as it has the php-cli package available. All you need is SSH access and a way to enter these commands like the Mac terminal or PuTTY on Windows.
Install WP-CLI without root or sudo Access
We need a place to store the WP-CLI phar file so let's create a folder and enter it
mkdir -p /tmp/wp-cli
cd /tmp/wp-cli
Grab the latest WP-CLI phar and make it executable
wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O wp
chmod 755 wp
Or this way by downloading the WP-CLI phar straight into your temporary folder
mkdir -p /tmp/wp-cli
wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /tmp/wp-cli/wp
chmod 755 /tmp/wp
Or to any folder of your choice really
cd /yourfolder
wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /yourfolder/wp
chmod 755 /yourfolder/wp
To use the WP-CLI we downloaded, we will need to put ./
before the wp
, we also need the path of the WordPress installation files.
First find out the full path of your WordPress installation, if you are already in the right directory, you can find this out with pwd
command.
pwd
And you will get this output showing the full path, it should be used in the --path
flag
/var/www/vhosts/wp-bullet.com/www
In this example I am in the /tmp/wp-cli
folder and my WordPress installation is in /var/www/vhosts/wp-bullet.com/www
./wp option get siteurl --path=/var/www/vhosts/wp-bullet.com/www
And you'll get some output like this
https://wp-bullet.com
It can be tedious to keep adding the --path
so let's make it so we can run WP-CLI just by typing just wp
from any directory instead of having to use ./wp
from the /tmp/wp-cli
directory we created earlier.
To do this we can add the WP-CLI phar file wp's folder to the Linux shell's PATH variable so we don't have to keep adding the --path
flag.
If you are using a different temporary path, change /tmp/wp-cli
to your path of choice.
export PATH="$PATH:/tmp/wp-cli"
Now you can use WP-CLI as if it were installed in the common /usr/bin
or /usr/bin/local
.
Here is a snippet you can copy and paste to install WP-CLI and add the PATH for you so you can use it anywhere!
mkdir -p /tmp/wp-cli
wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /tmp/wp-cli/wp
chmod 755 /tmp/wp-cli/wp
export PATH="$PATH:/tmp/wp-cli"
When you are done you can clean up afterwards too.
rm -r /tmp/wp-cli
Enjoy WP-CLI on the host that didn't provide it 😉