LoginSignup
0
1

More than 1 year has passed since last update.

php -vで確認したバージョンとは違うバージョンですとエラーに言われて困った話

Posted at

環境

M1 Macbook Air
MAMP

Cakephpの環境構築過程でcomposer updateを実施したところ下記のエラーが発生。

$ composer update
Loading composer repositories with package information
Updating dependencies                                 
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires php <8.0 but your php version (8.0.13) does not satisfy that requirement.
  Problem 2
    - phpunit/phpunit[6.0.0, ..., 6.5.14] require php ^7.0 -> your php version (8.0.13) does not satisfy that requirement.
    - Root composer.json requires phpunit/phpunit 6.* -> satisfiable by phpunit/phpunit[6.0.0, ..., 6.5.14].

composer.jsonで指定しているphpのバージョンの範囲が、私の環境にあるphpのバージョンの範囲外らしい。(こっちは8.0より低いバージョンが必要だけどあなたのphpのバージョンが8.0.13なので無理ですよ〜と言っている)

なので下記コマンドでphpのバージョンを確認してみたところ

$ php -v
PHP 7.4.21 (cli) (built: Oct  1 2021 11:18:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

あれ? 7.4.21だぞ? なんで8.0.13じゃないんだ?
ここで詰まりました。

解決法

compose.jsonのconfigに、下記のようにphpのバージョンを指定し、再度composer updateすることで解決しました。

    "config": {
        "minimum-stability": "dev",
        "platform": {
            "php": "7.4.21"
        }
    },

そもそもなぜバージョンのところでエラーが出たのかという話なのですが、私がphp -vで参照した7.4.21のphpは、元々macにインストールされていたphpのバージョンであったのに対し、composer.json側ではHomebrew側のphpを参照していたことが原因のようです。

余談

composer updateが完了した後、ふと思い立ち再度php -vをしたところ

$ php -v
PHP 8.0.13 (cli) (built: Nov 24 2021 11:11:54) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies

上記のように変化していました。
あれ?いつ変わった。。?
Homebrew側のphpのPATHを追加して反映させたタイミング?
あれ?でもエラーの前には反映させていたような。。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1