wp-cli on a shared host
Here’s how I installed wp-cli on a shared host (HostRocket).
First, download the latest version:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Test if it works:
php wp-cli.phar --info
You should see something like this:
PHP binary:binary/usr/bin/php
PHP version:version5.5.29
php.ini used:used/etc/php.ini
WP-CLI root dir:dirphar://wp-cli.phar
WP-CLI global config:config
WP-CLI project config:config
WP-CLI version:version0.21.1
If this works for you then move the file into ~/bin
and you are done:
mv wp-cli.phar ~/bin/wp
chmod +x ~/bin/wp
This didn’t work for me though. I hit an issue with HostRocket’s PHP setup and saw:
???p????Q??
It turns out this is due to PHP’s detect_unicode
setting. To test:
php -d detect_unicode=Off wp-cli.phar --info
This output the correct info.
To address this, I created a small wrapper wp
in ~/bin/wp
:
#!/usr/bin/env bash
# We need to disable unicode detection for wp-cli to work
php -d detect_unicode=Off "$(dirname "$0")/wp-cli.phar" "$@"
And moved the files into place:
mv wp-cli.phar ~/bin/
chmod -x ~/bin/wp-cli.phar
mv wp ~/bin
chmod +x ~/bin/wp
Now when I run wp
it disables detect_unicode
and works properly.
EDIT, Apr 26, 2016: I discovered today that I embarrassingly forgot to
pass arguments in the Bash script above. I’ve corrected it, the missing bit
was the trailing "$@"
.