PHP ランタイムの指定
最終更新日 2025年03月17日(月)
composer.json
ファイルで使用するランタイムを指定できます。プッシュ時に、Heroku は必要な情報を composer.lock
から読み取ります (存在する場合)。存在しない場合は composer.json
にフォールバックします。
ランタイムの指定
たとえば、ここで composer.json
が Heroku に使用するよう指示するのは最新バージョンの PHP 8 (8.2.0 以降) で、PHP 9 ではありません。
{
"require": {
"php": "^8.2.0"
}
}
「8.2.13
」のように、厳密なバージョンを PHP や他のパッケージで指定しないでください。
代わりに、「^
」や「~
」next significant release operators を使用して、プッシュ時に利用可能になった適切なアップデートを入手できるようにしてください。
たとえば、「~8.2.0
」を指定して最新の 8.2.x リリースを指示します。この指定は 8.2 シリーズの他のリリースと完全に互換性がありますが、セキュリティやパフォーマンスの更新が含まれる可能性があります。PHP 8.3 以降とは互換性がありません。
最新の PHP 8.2 以降 (PHP 8.3、8.4 などを含む) を入手し、PHP 9 を入手しないようにするには、「^8.2.0
」を指定します。
Heroku は解決済みのバージョンを出力してインストールします。
-----> Installing platform packages...
- php (8.2.13)
不明なバージョンやサポートされていないバージョンを指定するとエラーになり、代替のバージョンのリストが表示されます。
PHP
「php
」を composer.json
の require
セクションで依存関係として指定して、PHP をランタイムとして使用します。たとえば PHP 8.1 以降の場合は次のようになります。
{
"require": {
"php": "^8.1.0"
}
}
必ず、使用する最小バージョンに接頭辞として ^
セレクタを付加することをお勧めします。こうすることで、更新されたバージョンが利用可能になったときに、受け取ることができるようになります。上述の例では、8.x シリーズの新しいバージョンなどの PHP 8.1.0 以降を取得できます。指定を変更するまで、PHP 9 (リリースされた場合) を取得することはできません。
次に、新しい要件が composer.lock
に「凍結」されていることを確認するため、次を実行します。
$ composer update
最後に、両方のファイルを git add
および git commit
することを忘れないでください。