エックスサーバーのサーバーパネル(管理画面)で設定したPHPのバージョンはssh(コマンドライン)でログインした際のバージョンとは異なる。
エックスサーバーのsshで任意のバージョンのphpを使えるようにする方法
CronでPHPを実行する場合、sshで設定したPHPのバージョンと同じになるかと思ったら違った。
sshのPHPのバージョン
# 実行するPHPの場所
$ which php
~/opt/bin/php
# PHPのバージョン => 7.2.17
$ php -v
PHP 7.2.17 (cli) (built: Apr 13 2019 01:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
CronのPHPのバージョン
# Cronで"which php && php -v"を実行した結果 => 5.4.16
/usr/bin/php
PHP 5.4.16 (cli) (built: Nov 1 2019 16:04:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
エックスサーバー CronのPHPのバージョンを切り替える方法
Cronで任意のバージョンのPHPを使う場合、マニュアルに記載されている「コマンドラインパス」を参考に具体的なパスを指定してやればOK。
Cronで任意のバージョンのPHPを使う
# Cronで"/usr/bin/php7.2 -v"を実行した結果 => 7.2.17
PHP 7.2.17 (cli) (built: Apr 13 2019 01:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
コマンドパス一覧(エックスサーバーのマニュアル)
https://www.xserver.ne.jp/manual/man_program_soft.php#link-b