公式情報に基づく比較・選び方のメディアです。広告を掲載する場合は「広告(PR)」と表示します。

PHPは新しいのにComposerだけ古い?確認する順番

確認日: 2026-11-08 / 編集: サーバー条件ノート

AI生成のイメージ。実在サービスの設備・利用体験を示すものではありません。

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 --version

platformによる上書きも分ける

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設定の有無を確認
  • 変更前にバックアップし、検証環境で実行する
自分の条件で比較・確認する →

参照した公式情報