PHPは新しいのにComposerだけ古い?確認する順番
確認日: 2026-11-08 / 編集: サーバー条件ノート

php -vの表示だけで判断せず、Composerの起動方法と仮想的なPHP設定を分けて調べます。
最初にアプリの要件を読む
composer.jsonのrequireと、採用しているフレームワークのバージョンを確認します。たとえばphpが^8.3なら、それを満たす実行環境が必要です。この値はアプリごとに違い、すべてのLaravelアプリの最低要件を意味しません。依存パッケージ側がさらに条件を指定する場合もあります。
シェルで呼ばれる実体を確認する
このサイトの制作中にも、php -vは8.4なのにComposerのエラーは8.0というログがありました。alias・関数・ラッパーが異なるPHPを指定していないか、解決先を確認します。WebのPHP切替と、SSHで使うPHPの切替も同じ操作とは限りません。
php -v
type -a php
type -a composer
composer --versionplatformによる上書きも分ける
Composerには依存解決用のPHPを仮想的に指定するplatform設定があります。設定している場合は、実行PHPが新しくても別のバージョンを前提に依存解決されます。下記は値の確認で、設定がなければエラーになる場合があります。認証設定全体や.envを公開する必要はありません。
composer config platform.php
composer config --global platform.php本番の復旧で依存関係まで更新しない
検証済みのcomposer.lockがある配信ではinstallで固定バージョンを再現します。updateは解決とlockの更新を伴うため、PHPの不一致を直す操作とは分けます。要件を下げたりignore-platform-reqsだけで通したりせず、拡張機能も確認します。実行ファイルのパスはサーバーの公式手順と自分の環境で確かめてください。
申込・変更前のチェック
- composer.jsonのPHP要件を確認
- phpとcomposerの実体・起動定義を確認
- platform設定の有無を確認
- 変更前にバックアップし、検証環境で実行する