バーチャルホストで幾つかのバージョンが同居するサーバでLarabelの環境を構築中に、デフォルトのPHPと異なるバージョンでcomposerを実行する必要があった。
環境
- composer 1.9.1
- CentOS 7.4
異なるバージョンのPHPが同居するサーバです。
phpコマンドはデフォルトでPHP 5.5が、その他はphp73
のようにしてバージョンを指定して実行します。(Remiでインストールした)
- php --version : PHP 5.5
- php72 --version : PHP 7.2
- php73 --version : PHP 7.3
また、PHP-FPMのポートを分けてバーチャルホスト別に異なるバージョンを利用しています。
今回このサーバにPHP7.3向けに作ったLaravelのプロジェクトを置く際にこの問題に行き当たりました。
PHPのバージョンを指定して実行する
composer
以下のようにPhar アーカイブを指定して実行しました。
$ php73 /path/to/composer.phar install
# もしくは
$ php72 /usr/local/bin/composer install # PHP7.2で実行
$ php73 /usr/local/bin/composer install # PHP7.3で実行
composerはhttps://getcomposer.org/download/の手順でインストールしています。 composerのインストール時にphpコマンドを使うが、この時もphpのバージョンを気にした方が良いのか?はよくわからない。
artisan
artisanコマンドも同様にphp**
でバージョンごとにできます。
$ php72 artisan migrate # PHP7.2で実行
$ php73 artisan migrate # PHP7.3で実行
古いバージョンのPHPでcomposerコマンドを叩くと
PHPのバージョンが古いとcomposer install
はできない。
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- This package requires php ^7.1.3 but your PHP version (5.5.38) does not satisfy that requirement.
Problem 2
- beyondcode/laravel-dump-server 1.3.0 requires php ^7.1 -> your PHP version (5.5.38) does not satisfy that requirement.
- beyondcode/laravel-dump-server 1.3.0 requires php ^7.1 -> your PHP version (5.5.38) does not satisfy that requirement.
- Installation request for beyondcode/laravel-dump-server 1.3.0 -> satisfiable by beyondcode/laravel-dump-server[1.3.0].
こちらのようにcomposer.jsonを修正してPHPのバージョンを指定できる。
参考
laravel newコマンドでbash:laravel:command not found
Laravelschedule2020-10-05
LaravelのModelsのディレクトリ構成を変更する
Laravelschedule2020-09-02
【Laravel】UserAgentでガラケー用のViewを切り替えるためのmiddleware
Laravelschedule2020-04-21
PHP Warning Illegal string offset 'foo'
PHPschedule2020-02-03