I use WP-CLI from time to time to do maintenance on my WordPress sites that I host on a DreamHost VPS. But today I tried to run the search-replace function and found that
wp wouldn’t run. Instead I got this error:
Fatal error: Call to undefined function apply_filters() in /path/to/wp-includes/load.php on line 317
It didn’t take long to confirm that WordPress 4.6 had changed things around, breaking the version of WP-CLI on my server. As it turns out, WP CLI 0.24 fixes this, but DreamHost is running 0.24-alpha.
So I tried installing the current version locally on my account, only to get a different error:
Fatal error: Class 'Phar' not found in /path/to/wp-cli.phar on line 3
I found this article very helpful for enabling PHAR support on a DreamHost VPS. I went into
~/.php/5.6/phprc (create this file for your version of PHP if you don’t have it) and added:
extension=phar.so phar.readonly = Off phar.require_hash = Off suhosin.executor.include.whitelist = phar
Once I verified that it would work by running
/usr/local/bin/php-5.6 wp-cli.phar --info, I took the opportunity to (a) override the
wp command with the local one and (b) make sure it used php 5.6 by adding the following alias to my
alias wp='/usr/local/bin/php-5.6 ~/bin/wp-cli.phar'
This won’t be needed once DreamHost updates their WP-CLI package, but for now, it solves my problem faster than waiting for a response from tech support.