MAMP に Composer で CodeIgniter 4 をインストールできないエラーの対処法

はじめに

Your requirements could not be resolved to an installable set of packages. エラーが出力されて composer create-project codeigniter4/appstarter project-root コマンドが失敗してしまう現象が発生した、それを解決した情報になります。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - codeigniter4/framework[4.0.0, ..., v4.1.5] require ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
    - Root composer.json requires codeigniter4/framework ^4 -> satisfiable by codeigniter4/framework[4.0.0, ..., v4.1.5].

実行結果には 2 点の問題が出力されています。

  1. codeigniter4/framework[4.0.0, …, v4.1.5] require ext-intl * -> it is missing from your system. Install or enable PHP’s intl extension.(PHP の intl 拡張モジュールが必要)
  2. Root composer.json requires codeigniter4/framework ^4 -> satisfiable by codeigniter4/framework[4.0.0, …, v4.1.5].(framework が必要)

環境

  • macOS : Big Sur 11.5.2
  • CodeIgniter 4 : 4.1.5
  • Composer : 2.1.12
  • MAMP : 6.4

解説

結論から言うと、mac にプリインストールされている PHP を参照してコマンドを実行している為に失敗している可能性があるので、MAMP の PHP を参照してコマンドを実行するように環境変数を設定すると解決できます。

まず初めに which php コマンドを実行して PHP の参照先を確認します。

$ which php
/usr/bin/php

mac の /usr/bin/php を参照していることがわかりました、php -v コマンドを実行すると参照している PHP のバージョンがわかります。

$ php -v
PHP 7.3.29-to-be-removed-in-future-macOS (cli)

何も考えずに mac の PHP を Homebrew でサクッとバージョンアップして足りないモジュールもインストールしちゃえば良いじゃんってやり方もあるんですけど、できれば現在のファイルに手を加えたくないなって時は .bash_profile に MAMP の PHP を参照するように export を書き加えれば簡単に解決することができます。

パスにある php のバージョンは MAMP の環境に合わせて変更してください。

export PATH="/Applications/MAMP/bin/php/php8.0.3/bin:$PATH"

再度 composer create-project codeigniter4/appstarter project-root コマンドを実行して CodeIgniter 4 のプロジェクトが作成できれば解決です。

以上です。

おわりに

この問題に関する日本語の記事が本当に少なかったので、同じように困っている開発者の助けになれば幸いです。