Xserver で WP-CLI がエラーで動かない場合の対応

WordPressのバージョン(WordPress 6.2 以降?)によっては、WordPress のコマンドラインツール WP CLI を実行した際に「PHP が7.0.0以上でないと動かない」というエラーがでることがあります。
これは Xserver のコンソールでデフォルトで動く PHP が5系なのが原因です(最近利用し始めたサーバーならきっともともとのバージョンももっと高いはずなので、特に長く契約しているサーバーの場合だと思われます)。

Your server is running PHP version 5.4.16 but WordPress 6.4.1 requires at least 7.0.0.[******@sv****+ public_html]$

こちらをサクッと解決するために .bashrc などにエイリアスを追記します。

$ cd ~/
$ vi .bashrc

おそらく何もしていない状態の .bashrc だと # Source global definitions あたりの記述しかないはずなので、この最終行に以下のようにエイリアスの記述を追加します。

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

alias wp="php8.1 /usr/bin/wp"

今回はwpのコマンド上で php8.1 が動くようにしていますが、このあたりは利用したい PHP のバージョンを設定してください。
そのサーバーのサーバーパネル上で設定している PHP のバージョン(WordPress のサイトが動作している PHP のバージョン)に合わせておくのが無難でしょう。

.bashrc ファイルの編集が終わったら、最期に source コマンドで読み込めば WP-CLI が新たに設定した PHP のバージョンで動きます。

$ source ~/.bashrc

これで無事に WP-CLI がうごきますね。よかったよかった。
念のため wp —info コマンドを入力して、動作している PHP のバージョンがちゃんと切り替わっているか確認しておくといいですね。

追記

PHP 自体を8.1で動かす設定をおしえていただきました。


ちなみに、WP-CLI を動かしている PHP のバージョンをあげると、今度は WP-CLI のバージョンが古くてエラーを吐くことがありますw

もしそうなっても心配いりません。wp cli update コマンドで WP-CLI 自体のアップデートをすれば OK。


【それでもまだエラーが出るとき】

もしかして WP CLI といっしょに LINUX コマンドとか使ってますか…?
その場合、サーバーで動いている CLI 環境の PHP のバージョン(サーバーに SSH 接続した状態で php -v を入力して表示される PHP のバージョン)が古いままの可能性があります。

Xサーバーでは、ウェブサーバーで動作している PHP のバージョン(WordPress などに使用される PHP のバージョン)と、CLI で使用される PHP のバージョンが異なることがあります。
(よく考えたら、ひとつのサーバー上でドメインごとに動作する PHP のバージョンを指定できるので、それとは切り離してサーバー全体で動作する PHP がある(そしてその PHP のバージョンはドメインに依存しない)のはあたりまえだったですかね…)

この場合、例えば PHP 8.2.22で動作するようにしたいのならば

echo 'export PATH=/opt/php-8.2.22/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

と入力して再度 php -v してみましょう。例えば上記の例で言えば

PHP 8.2.22 (cli) (built: Aug  5 2024 10:25:13) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.22, Copyright (c) Zend Technologies

と返ってくればバッチリです!
これで問題なく動作するはずです。お疲れさまでした!