Use Composer with a specific PHP version
May 28, 2022 ‐ 2 min read
Are you using different PHP versions on your local development machine just like me? Then you might have encountered the following error when installing packages with composer, again, just like me.
$ composer require intervention/image:^2.7 ... Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires php ^7.4 but your php version (8.1.5) does not satisfy that requirement. ...
Composer defaults to the default PHP version. That is, the shebang comment at the top of the executable composer file indicates that the
php binary should be used.
You can find out which version this is by running
php --version on your terminal.
Now, in order to use the PHP version of your preference you should run the
composer binary with the desired
php binary. For this you need the exact path to the
composer binary. On my machine the
composer binary is located at
Thus the command would look the following for me. Using PHP version 7.4.
php7.4 /usr/local/bin/composer require intervention/image:2.7.2
To find out where composer is installed on your machine you can run
which composer in your terminal:
$ which composer /usr/local/bin/composer
To make this a bit easier you can make this a one step process as well.
$ php7.4 $(which composer) require intervention/image:2.7.2
If you are required to run this command often then you might want to make it an alias in your shell.