WEB/システム/IT技術ブログ

レンタルサーバ「xserver」でComposer実行時にPHPバージョンエラー

最近、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バージョンエラーが解決しました。
これでシステム運用においてパッケージ管理が楽になります。ひと安心。。

B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives