Using WP-CLI with WordPress 4.6 on DreamHost
NOTE: This article is out of date and likely obsolete.
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 .bash_profile:
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.