サイトアイコン IT NEWS

エックスサーバーのSSHでPHPのバージョンを変更する方法

xserver-ssh-php7

エックスサーバーのWEB管理画面で指定するPHPバージョンと、SSHサーバーへ接続した際のPHPコマンドでは、実行するPHPのバージョンが異なります
今回は、SSHPHPバージョンを変更する方法をご紹介します!

PHPのバージョン違いでエラー!?

今やPHPで最も有名なフレームワークである「Laravel」で開発する上で、ComposerArtisanなどのコマンドによる操作がどうしても必要になりますが、世の中のほとんどのレンタルサーバーではSSHを利用することができません。
しかし、当サイトでも利用していて以前から紹介しているエックスサーバーではそれが可能です!
エックスサーバーSSLやNginxにも対応しているレンタルサーバーとして、度々紹介しています。

早速、SSHデータベースを構築するためPHPArtisanコマンドを試してみました。
すると…

$ php artisan migrate
PHP Parse error:  syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '
管理者

何!?
33行目でsyntaxエラーだと!?

とりあえず後回しにしてComposerコマンドで最新にしてみよう!

$ composer update
This package requires php >=7.0.0 but your PHP version (5.4.16) does not satisfy that requirement.
管理者

…。
よし!落ち着いてエラーの内容を見てみよう!

This package requires php >=7.0.0 ...

直訳すると「このパッケージはPHP 7.0.0が必要…
だから、PHP7.0.0以上が必要だぞ!ってことか。
そして、その後ろ。

... but your PHP version (5.4.16) ...

こちらも翻訳すると「…しかし、あなたのPHPバージョンは5.4.16です」だそうです!?

管理者

何を言ってるのやら。
実際Laravelが動いてるじゃねーか!

エックスサーバーでのPHPバージョン管理

色々調べていると、そもそもエックスサーバー管理画面から設定しているPHPSSHで利用するPHPは異なるとのこと。
こちらのサイトはどちらも詳しいのでどうぞ。

SSHのPHPのバージョンを変更

SSHの接続設定はこちらをご覧ください。

それでは、SSHPHPバージョンを変更します。
まずはPHPバージョンを確認します。

php -v

エックスサーバーでは、OSデフォルトのPHPで入っていると思われます。
以下のコマンドを入力して使用可能なPHPバージョンを調べます。

find /opt/php-*/bin -type f -name 'php'

ここでは一番最新のPHPを使います。

...
/opt/php-7.1.2/bin/php
/opt/php-7.1.3/bin/php
/opt/php-7.1.4/bin/php

HOME直下にbinディレクトリを作成し、そこにPHPシンボリックリンクを作成します。
バージョンは先程調べた最新のPHPに変更します。

mkdir $HOME/bin
ln -s /opt/php-7.1.4/bin/php $HOME/bin/php

最後にパスを通すのですが、次回ログインした時も自動的に上記で設定したPHPバージョンが使えるように設定しておきます。
念のため、.bashrcをバックアップ。

$ cp ~/.bashrc ~/.bashrc.bk

ファイルを開き、編集モードにして、

$ vi ~/.bashrc

最終行に以下を追加。

export PATH=$HOME/bin:$PATH

最後に変更内容を反映します。

$ source ~/.bashrc

以上で、問題なくArtisanコマンドが使用できるようになりました。
お疲れ様でした!

モバイルバージョンを終了