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

コメントはありません

コメントする

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Monthly Archives