XServer(新サーバーパネル)でPHPのバージョンを変更するには、
- サーバーパネルのメニューから「PHP」を開く
- 「PHP Ver.切替」をクリック
- バージョンを変更したいドメインの「編集」をクリック
- 変更したいバージョンをプルダウンから選び、「設定する」をクリック
という手順で超簡単にできます。(変更手順詳細は公式サイト こちら にて)
しかし注意が必要なのは、この手順で変更されるのはWebサーバーのPHPバージョン(ブラウザで動作するPHPスクリプト)であり、SSHで使用するCLI(コマンドラインインターフェース)のPHPバージョンは別々に設定されているという点です。このため、CLIでコマンドを実行すると以下のようなエラーが発生する場合があります。
コマンド実行時のエラーメッセージの例
composer detected issues in your platform:
Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.4.33.
PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.4.33. in /home/~~~~~~~~~~~~~~
このエラーは、CLIで使用しているPHPのバージョンが依存関係の要件(PHP 8.1以上)を満たしていないために発生しており、サーバーパネルでPHPバージョンを変更しても反映されません。(同じエラーが表示されてしまいます。)
これは前述の通り、サーバーパネル上でのバージョン変更はWebサーバー(ブラウザで動作するPHPスクリプト)のみが対象で、CLIのPHPバージョンには反映されないためです。
従って、エラーを回避してコマンドを実行するには、CLIで適切なPHPバージョンを指定して実行する必要があります。
なお、現在使用しているPHPのバージョンは以下のコマンドで確認できます。
php -v
適切なPHPバージョンを指定してコマンドを実行する方法
find /usr -name php* | grep bin
というコマンドを実行すると、指定できるPHPのバージョン一覧が表示されます。
一覧から依存関係が求めるバージョン(上記エラーメッセージの場合: PHP 8.1以上)を選び、フルパスを指定してコマンドを実行してください。
例)PHPのバージョン(php8.3)を指定して、EC-CUBEのキャッシュをクリアするコマンドを実行した場合
/usr/bin/php8.3 bin/console cache:clear --no-warmup
これでエラーを回避して実行できるはずです。
シンボリックリンクを使ってコマンドを短縮する
毎回/usr/bin/php8.3
というコマンドを打つのが面倒なので、シンボリックリンクを使って短縮コマンドを作成しておきます。
bin
フォルダを作成(すでに作成してある場合はスキップ)mkdir -p ~/bin
php83
のシンボリックリンクを作成ln -s /usr/bin/php8.3 ~/bin/php83
~/bin/
を $PATH
に追加(~/.bashrc
または ~/.zshrc
に追記) bashecho 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc # bash の場合
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc # zsh の場合
~/.bashrc
と ~/.zshrc
のどちらを編集すればいいかは、現在使っているシェル によります。以下のコマンドを実行し、結果に応じてコマンドを選択してください。(どのシェルを使うか分からない場合は、両方に追記しておくのもアリです。)
echo $SHELL
/bin/zsh
→~/.zshrc
を編集/bin/bash
→~/.bashrc
を編集
source ~/.bashrc # bash の場合
source ~/.zshrc # zsh の場合
例)PHPのバージョン(php8.3)を指定して、EC-CUBEのキャッシュをクリアするコマンドを実行した場合
php83 bin/console cache:clear --no-warmup
このコマンドでも実行できるようになるはずです。