首页 > 解决方案 > 即使我的 php 版本是 7.2.1,在 Laravel 6 composer update 中也出现 php 版本错误

问题描述

我下载了一个 laravel 6 演示项目并将其设置在我的 mac mamp 中。最初我的 php 版本是 7.1.23,我收到了这个错误。

Warning: require(/Applications/MAMP/htdocs/laravel_demo/public/../vendor/autoload.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/laravel_demo/public/index.php on line 26

Fatal error: require(): Failed opening required '/Applications/MAMP/htdocs/laravel_demo/public/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.2.1/lib/php') in /Applications/MAMP/htdocs/laravel_demo/public/index.php on line 26

所以我通过重命名 mamp 中的旧 php 版本文件夹将我的 php 版本更改为 7.2.1。现在如果我运行phpinfo()它显示 php 版本 7.2.1。但是当我composer update在终端运行时,我收到了这个错误。

Problem 1
- This package requires php ^7.2 but your PHP version (7.1.23) does not satisfy that requirement.
Problem 2
- laravel/framework v6.4.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.3.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.2.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.1.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.4 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.3 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.2 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.1 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework v6.0.0 requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- laravel/framework 6.x-dev requires php ^7.2 -> your PHP version (7.1.23) does not satisfy that requirement.
- Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.2.0, v6.3.0, v6.4.0].

这个问题与 laravel 设置或我的 php 版本有关,还是我在更新我的 php 版本时遗漏了什么?

标签: phpmampphp-7.2laravel-6

解决方案


Laravel 6 需要 PHP >= 7.2.0 并且你的版本是 7.1.23。

在这种情况下会发生什么?

如果您phpinfo()通过 http 服务器在浏览器上访问的文件运行。您的终端的输出可能不同。如果您的 HTTP 服务器(如 apache 或 nginx)上启用的 PHP 是最新的(7.2),则可能需要检查终端运行的版本php -v

在某些情况下,php 会更新到 http 服务器,但“cli”版本未更新并指向旧版本,这取决于系统更新的方式。

如果这种情况是你的情况,你需要检查是否php-cli正确安装。


推荐阅读