エックスサーバーのWEB管理画面で指定するPHPのバージョンと、SSHでサーバーへ接続した際のPHPコマンドでは、実行するPHPのバージョンが異なります。
今回は、SSHのPHPのバージョンを変更する方法をご紹介します!
PHPのバージョン違いでエラー!?
今やPHPで最も有名なフレームワークである「Laravel」で開発する上で、ComposerやArtisanなどのコマンドによる操作がどうしても必要になりますが、世の中のほとんどのレンタルサーバーではSSHを利用することができません。
しかし、当サイトでも利用していて以前から紹介しているエックスサーバーではそれが可能です!
エックスサーバーはSSLやNginxにも対応しているレンタルサーバーとして、度々紹介しています。
早速、SSHでデータベースを構築するためPHPのArtisanコマンドを試してみました。
すると…
1 2 |
$ 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コマンドで最新にしてみよう!
1 2 |
$ composer update This package requires php >=7.0.0 but your PHP version (5.4.16) does not satisfy that requirement. |
…。
よし!落ち着いてエラーの内容を見てみよう!
1 |
This package requires php >=7.0.0 ... |
直訳すると「このパッケージはPHP 7.0.0が必要…」
だから、PHP7.0.0以上が必要だぞ!ってことか。
そして、その後ろ。
1 |
... but your PHP version (5.4.16) ... |
こちらも翻訳すると「…しかし、あなたのPHPバージョンは5.4.16です」だそうです!?
何を言ってるのやら。
実際Laravelが動いてるじゃねーか!
エックスサーバーでのPHPバージョン管理
色々調べていると、そもそもエックスサーバーの管理画面から設定しているPHPとSSHで利用するPHPは異なるとのこと。
こちらのサイトはどちらも詳しいのでどうぞ。
SSHのPHPのバージョンを変更
SSHの接続設定はこちらをご覧ください。
それでは、SSHでPHPのバージョンを変更します。
まずはPHPのバージョンを確認します。
1 |
php -v |
エックスサーバーでは、OSデフォルトのPHPで入っていると思われます。
以下のコマンドを入力して使用可能なPHPのバージョンを調べます。
1 |
find /opt/php-*/bin -type f -name 'php' |
ここでは一番最新のPHPを使います。
1 2 3 4 |
... /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に変更します。
1 2 |
mkdir $HOME/bin ln -s /opt/php-7.1.4/bin/php $HOME/bin/php |
最後にパスを通すのですが、次回ログインした時も自動的に上記で設定したPHPのバージョンが使えるように設定しておきます。
念のため、.bashrcをバックアップ。
1 |
$ cp ~/.bashrc ~/.bashrc.bk |
ファイルを開き、編集モードにして、
1 |
$ vi ~/.bashrc |
最終行に以下を追加。
1 |
export PATH=$HOME/bin:$PATH |
最後に変更内容を反映します。
1 |
$ source ~/.bashrc |
以上で、問題なくArtisanコマンドが使用できるようになりました。
お疲れ様でした!
コメント
コメント一覧 (4件)
[…] おかしい…原因がわからない。 上記のエラーメッセージで検索してみら、海外のサイトで気になる箇所を発見! どうやら、PHPのバージョンが違うそうな。 Laravel 5.5はPHP7以降が必須であることは分かっている。 実際に、PHP7.1に切り替えて動いているし、昔SSHのPHPのバージョンも変えた記憶はあるのでもう一度振り返ってみる。 XSERVER(エックスサーバー)のSSHでPHPのバージョンを7に変更する方法https://minory.org/xserver-ssh-php7.htmlLaravelを開発する上で、ComposerやArtisanなどのコマンドによる操作がどうしても必要になりますが、世の中のほとんどのレンタルサーバーではSSHを利用することができません。しかし、当サイトでも利用していて以前から紹介しているXSERVER(エックスサーバー)では… Minory 1 share 1 user おっ!!確かに、この記事と全く同じエラーの内容だ! とにかく、CronでPHPのバージョンを確認してみると…。 […]
[…] ▼手順は下記サイトを参考に!https://minory.org/xserver-ssh-php7.html […]
[…] XSERVER(エックスサーバー)のSSHでPHPのバージョンを7に変更する方法 | Minory […]
[…] SSHでコマンドを叩いた時に動くPHPのバージョンを変えたい際はこのあたりのブログ記事を参考にしてみてください。 […]