最近、Laravel、FuelPHPやCakePHPなどパッケージをComposerで管理するのが当たり前になりました。
ところが、レンタルサーバxserverでComposerで実行するとエラーが発生しました。
$ composer install Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages. Problem 1 - This package requires php ^7.1.3 but your HHVM version does not satisfy that requirement. Problem 2 - beyondcode/laravel-dump-server 1.2.2 requires php ^7.1 -> your PHP version (5.4.16) does not satisfy that requirement. - beyondcode/laravel-dump-server 1.2.2 requires php ^7.1 -> your PHP version (5.4.16) does not satisfy that requirement. - Installation request for beyondcode/laravel-dump-server 1.2.2 -> satisfiable by beyondcode/laravel-dump-server[1.2.2].
コマンド実行にはPHP 7.1.3以上が必要だが、それを満たしてないというエラーのようです。
現在のバージョンを調べてみると確かにPHP 5.4.16です。
$ php -v PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) Copyright (c) 1997-2013 The PHP Group
ちなみに、xserverサーバパネルでは「PHPバージョン切替」でPHP7以上を設定しているのですが、コマンドで使用するPHPのバージョンとは関係がないようです。
そこでコマンドでPHP7以上が実行可能か調べてみます。
$ ls /opt/php- php-5.1.6/ php-5.4.45/ php-5.6.18/ php-5.6.36/ php-7.0.17/ php-7.0.7/ php-7.1.3/ php-7.2.14/ php-5.3.3/ php-5.5.24/ php-5.6.22/ php-5.6.8/ php-7.0.18/ php-7.0.9/ php-7.1.4/ php-7.2.6/ php-5.4.16/ php-5.5.38/ php-5.6.24/ php-7.0.0/ php-7.0.3/ php-7.1.18/ php-7.2/ php-etc/ php-5.4.40/ php-5.6.15/ php-5.6.30/ php-7.0.16/ php-7.0.30/ php-7.1.2/ php-7.2.1/
いっぱいありますね。
今回はPHP 7.1.18のシンボリックリンクを作成してエラーを回避してみます。
まず、任意のフォルダ「bin」を作成して、その中にシンボリックリンクを作成します。
$ mkdir $HOME/bin $ ln -s /opt/php-7.1.18/bin/php $HOME/bin/php
シェルスクリプトを開き
$ vi ~/.bashrc
最終行に作成したPHPのシンボリックリンクへのパスを追加します。
export PATH=$HOME/bin:$PATH
設定を反映します。
$ source ~/.bashrc
改めてPHPのバージョンを確認してみると、無事に7.1.18になっています。
$ php -v PHP 7.1.18 (cli) (built: May 30 2018 20:41:23) ( NTS ) Copyright (c) 1997-2018 The PHP Group
それでは、再度Composerを実行してみます。
$ composer install Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating optimized autoload files ... Package manifest generated successfully.
PHPバージョンエラーが解決しました。
これでシステム運用においてパッケージ管理が楽になります。ひと安心。。
コメントする