web-dev-qa-db-ja.com

致命的なエラー:composer.lockはPHPバージョン7.4以降で作成されましたが、現在のPHPバージョンは7.3.11です

Symfony CRUDアプリケーションを作成したいのですが。これらは私がしたステップです:

  • PHP 7.3.11 https://www.apachefriends.org/de/index.html を使用して、ここからXAMPPをダウンロードしてインストールしました
  • WindowsのCLIでhtdocsに移動します。
  • コマンドcomposer create-project symfony/skeleton my_projectでsymfonyプロジェクトを作成しました
  • ブラウザ(Firefox 70.0.1)を開き、次のURLに移動します:localhost/my_project/public/

ここに私はエラーメッセージを得ました:

致命的なエラー:composer.lockはPHPバージョン7.4以降で作成されましたが、現在のPHPバージョンは7.3.11です。

CLIでphp -vを使用してPHPのバージョンを確認すると、PHP 7.4.0(cli)を使用した結果が得られます。PHPInfoをクリックしてPHPのバージョンを確認すると、 XAMPPのダッシュボード(localhost/dashboard/phpinfo.php)、ページにphpバージョン7.3.11が表示されます。

作成されたsymfonyフォルダーにはsymfony.lockというファイルがあります。 "php": { "version": "7.4" },というエントリがあります。このエントリを変更しても問題は解決しませんでした。

これを解決する方法はありますか?そして、なぜXAMPPで最新のsymfonyをインストールしてテストできないのですか?

みんなありがとう!

ムーサ

5
Musa

別のバージョンのphpで生成されたvendor/autoload.phpファイルをアップロードしたことが原因である可能性があります。これは、CI/CDを使用してPHPアプリをビルドする場合によく見られます。

したがって、composer dump-autoloadを実行するのではなく、アーティファクトからこのファイルを除外するのが最善の方法です(これが最後のチャンスの解決策になる可能性があります)。

0
webofmars

これは、ローカルマシンに2つの異なるバージョンのphpがある場合に簡単に発生します。これを回避するには、ローカルサーバーが実行しているものと一致するバージョンのphpをコンソールで見つけます。

rm composer.lock
/usr/bin/php /usr/local/bin/composer install

その後、Composerは適切なバージョンのphpでロックファイルを再作成します。

0
Robert Saylor

composerがインストールされているphpフォルダーと、xampp、wampp、lamppバージョンなどのApacheサーバーは同じです。

たとえば、composerがインストールされているphpのバージョンが7.4以降の場合、xampp、wampp、lamppなどのApacheサーバーのバージョンも7.4以降である必要があります。

0
Kisa Kabeta