【问题标题】:Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0"Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.3.0"
【发布时间】:2021-03-28 01:36:08
【问题描述】:

当我转到 ec2 实例的 ip 地址时,我已将我的 laravel 项目上传到 aws 托管,它给了我这个错误

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".

我检查 php 版本当前版本 7.3 我不知道实际需要做什么。首先版本是 7.4 然后我降级到 7.3

【问题讨论】:

  • 你在运行composer install时遇到错误吗?
  • 我不会推荐下面的答案,只是让警告静音。改为诊断并解决根本原因。就我而言,我需要升级到 PHP 7.4,因为我依赖的库需要它。我正在使用 WAMPServer,所以需要这样做:unix.stackexchange.com/questions/339235/…
  • 运行 composer update 它对我有用。

标签: php laravel laravel-5


【解决方案1】:

遵循这个技巧

  1. 在 composer.json 文件的 config 对象中添加这一行

    “平台检查”:假

  2. 运行php artisan config:cache

  3. 然后在终端中运行composer dump-autoload

【讨论】:

  • 这行得通,但我必须在 config:cache 之前先运行自动加载。谢谢
  • 我设法得到了一个不同的错误。谢谢!我正在使用 Laravel。就我而言,它与 monolog/monolog 包有关。我通过将版本锁定为 2.2.0 来修复它,如 github.com/Seldaek/monolog/issues/1597 中所述
【解决方案2】:

项目或全局 composer.json 文件

{

"config": {

    "platform-check": false
}

}

【讨论】:

  • 请在您的答案中添加一些解释,以便其他人可以从中学习。为什么这个配置有帮助?为什么不正确地修复错误呢?
  • 我正在尝试上传我的yii2 application,但无法上传。我添加了一个新的question,你可以看看吗?
【解决方案3】:

问题:


在加载自动加载器时,您的作曲家会检查平台要求(PHP 版本和加载的扩展)。如果您运行的应用程序不符合平台要求,应用程序将退出并显示类似以下的消息:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".

解决方案:


您可以使用最简单的方法:将--ignore-platform-reqs 选项添加到composer install/composer update 以忽略所有平台要求。

【讨论】:

  • 我收到了来自 Composer 和 Laravel 的这条消息,只使用 composer update --ignore-platform-reqs 运行。
  • 忽略平台要求可能不是在所有情况下都是一个好的解决方案 - 为什么不正确解决问题?
  • 我正在尝试上传我的yii2 application,但无法上传。我添加了一个新的question,你可以看看吗?
  • 这是一个非常有用的答案,当我尝试使用 Laravel Valet 运行较旧的 php 时,我一直遇到这个问题。谢谢
【解决方案4】:

这对我有用:

sudo a2dismod php7.2
sudo a2enmod php7.4
sudo service apache2 restart

php7.2 调整为您当前的模块

【讨论】:

    【解决方案5】:

    实际上,这是唯一对我有用的解决方案:

    composer global update
    composer dump-autoload
    

    【讨论】:

      【解决方案6】:

      如果您像我一样由于特定原因不得不在您的机器 (Mac) 上降级 PHP 版本,并且当您运行 valet use php --force 时,您会看到 Composer 全局依赖项需要 PHP v7.3.0 或更高版本,那么你来对地方了。您可以暂时将以下三行注释掉,这将在再次运行valet use php --force 时为您解决问题。

      路径:~/.composer/vendor/composer/platform_check.php

      if (!(PHP_VERSION_ID >= 70300)) {
          $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
      }
      

      注意:切换到最新版本的PHP后不要忘记取消注释相关的三行。

      【讨论】:

      • 我有类似的问题。我有需要 PHP5.6(已安装)和带有 PHP7 或 PHP8(均已安装)的 laravel 的项目。尝试了你的建议,但结果是:PHP Parse error: syntax error in /Users/chika/.composer/vendor/symfony/polyfill-php80/bootstrap.php on line 23
      【解决方案7】:

      @Hashmat Waziri 的回答是正确的,但如果有人想用你的盘子 表单的版本 无论作曲家需要什么,他可以设置代码 根据他的系统,在 composer.json 文件中,如->

      "config": {
          "platform": {
              "php": "7.1.0"
           }
      }
      

      【讨论】:

        【解决方案8】:

        打开 cpanel 类型 multiphp Manager,然后选择您想要的域,然后在右上角将 php 版本更改为 7.3 或任何您想要的,给它一些时间,您的网站将启动并运行!

        【讨论】:

        • 如果问题在composer.json文件中怎么解决?
        • 你做得很好
        【解决方案9】:

        忽略不是正确的选择。你要做的就是升级你的php版本,考虑到现在我们已经有了PHP 8,所以7.2版本你已经落后了。

        Linux 用户 取决于您的发行版,如果您使用的是像 Ubuntu 这样的 Debian 衍生产品,请使用此链接指南:https://www.cloudbooklet.com/upgrade-php-version-to-php-7-4-on-ubuntu/ 或只需 google 即可,一切都会好起来的。

        WINDOWS 用户:

        1. 如果您使用的是 Windows 和 Laragon,那么您所要做的就是 下载你想要的 PHP 版本 https://www.php.net/downloads.php。解压文件夹到 c:/laragon/bin/php 文件夹,然后使用 Laragon GUI 选择另一个 Menu/php 中的版本。

        2. 如果您想升级全球 Windows PHP 版本,您可以 使用 Web 平台安装程序 https://www.microsoft.com/web/downloads/platform.aspx。这对我来说 是在 Windows 上执行此操作的最简单方法之一。更多 信息跟随这些链接: https://docs.microsoft.com/en-us/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php

        【讨论】:

          【解决方案10】:

          因此,在解决这个问题(“PHP 致命错误:Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.2.5"。您正在运行 7.1.28")几个小时之后,并且发现上述建议都不起作用,我终于发现——至少在 FreeBSD 系统上——Apache 所需的 php 模块没有被主 php 包安装(例如,“php74-7.4.19”),而是由具有自己版本控制的不同的、特定于模块的包(例如,“mod_php71-7.1.28”)。执行php -v会查阅php包;访问 phpinfo() 会查阅 mod 包。线索是执行 pkg info | grep php 并检查结果以查看您安装了哪些软件包。显然,您必须针对系统使用的打包系统调整上述内容。

          【讨论】:

            【解决方案11】:

            运行旧项目需要从 php 8.0 降级到 7.2 时遇到同样的问题。

            我如何解决我的问题:

            • 删除损坏的依赖项(之前使用 php 8 安装)
            • 取消链接最新的 php 版本,然后链接旧的 php 版本(我使用 brew CLI 链接/取消链接 $brew link php@7.2,但我认为您可以使用任何 php 管理器应用程序移动到旧版本的 php 没有任何问题)
            • 然后重新安装依赖

            这解决了我的问题并允许我在不同版本之间切换而不会出现其他问题,唯一的要求是使用:

            $ composer global update
            

            切换php版本刷新全局依赖后。

            不知道是什么原因造成的,可能是在php版本切换过程中发生了一些有趣的事情,但我们无法找到问题的原因。

            附:我们的问题与“laravel/install”包有关,卸载它之前需要卸载“laravel/valet”,但程序没有改变,只是我们必须在php@7.2上重新安装两个包

            【讨论】:

              【解决方案12】:

              正如原始问题下的评论中所述,与其只是试图隐藏错误或绕过它,不如完全解决它以确保应用程序按照应有的方式执行。为此,我们必须更新正在使用的 PHP 版本。我在云虚拟机中遇到了这个错误,所以我可以从我安装所需版本的 PHP 的终端访问系统。

              之后,我将 PHP 的活动版本从旧版本切换到新版本。

              为此,我先跑了,

              sudo a2dismod php7.2
              

              你会看到,

              Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2

              如前所述,运行,

              sudo systemctl restart apache2

              然后运行,

              sudo a2enmod php8.0

              这将启用所需的版本。然后运行,

              sudo systemctl restart apache2

              更详细的解释是available here

              【讨论】:

                【解决方案13】:

                我会强调不要公然忽视警告的指示。你会忽略电栅栏上的警告,告诉你触摸它会有死亡风险吗?

                在我的例子中,我试图让一个旧的应用程序运行,使用 php7.2,所以不能只更改 php 版本。

                我的解决方案相当简单。检查 composer.lock 文件以查找哪个包需要警告中报告的 php 版本。在 packagist.org 上找到该软件包,查找与您的 php 版本匹配的软件包版本,然后安装它。

                例如

                composer require <package>:<version>

                您可能需要多次执行此操作。在我的情况下,我必须在我的应用程序满意之前安装需要 php7.4 和需要 php7.3 的软件包。

                【讨论】:

                  【解决方案14】:

                  那些在 XAMPP 上遇到类似问题后来到这里的人(与 laravel 无关), 我通过以下方式解决了:

                  向我显示的错误:
                  Composer 在您的平台中检测到问题:您的 Composer 依赖项需要安装以下 PHP 扩展:mysqli、openssl

                  • xampp 安装了多次(没有卸载前一个)。
                  • 我卸载了程序列表中显示的那个。
                  • 重制电脑。
                  • 然后删除xampp的所有目录。
                  • 重启电脑。
                  • 再次安装 xampp。
                  • ——仅此而已。

                  【讨论】:

                    【解决方案15】:

                    请在您的 composer 命令中使用 (--ignore-platform-reqs)。

                    --ignore-platform-reqs 将忽略平台依赖。

                    composer install --ignore-platform-reqs
                    or
                    composer update --ignore-platform-reqs
                    

                    【讨论】:

                      【解决方案16】:

                      在使用了所有上述尝试的解决方案后,我发现效果最好的是以下解决方案。

                      sudo apt-get update
                      sudo apt install php-xml
                      sudo apt-get install php-mbstring
                      sudo reboot
                      

                      【讨论】:

                        【解决方案17】:

                        我设法通过下载更新版本的 PHP 解决了这个问题,该版本同时与从 here! 安装的 Apache 版本兼容。在Laragon界面看到Apache版本是“httpd 2.4.35 win64 VC15”,于是找了个有这个“vc15”的php版本。我下载了“php-7.4.19-Win32-vc15-x64”并在我的 laragon 中选择了它。在此链接中您可以找到如何替换 laragon here 中的 php 版本!

                        【讨论】:

                          【解决方案18】:

                          首先,阅读警告!它说不要以root身份运行composer!其次,您可能在本地使用 XAMPP,默认情况下它具有所需的 PHP 库。 但是在您的服务器中,您缺少 ext-dom。 php-xml 有你需要的所有相关包。所以,你可以通过运行来安装它:

                          sudo apt-get update
                          
                          sudo apt install php-xml
                          

                          您很可能也缺少 mbstring。如果出现错误,请同时安装此软件包:

                          sudo apt-get install php-mbstring
                          

                          然后运行: 作曲家更新

                          然后运行:重新加载你的 apache 服务器

                          sudo systemctl reload apache2
                          

                          【讨论】:

                            猜你喜欢
                            • 2021-04-21
                            • 2022-11-23
                            • 2021-12-21
                            • 2022-07-20
                            • 2021-11-21
                            • 2021-09-26
                            • 2022-10-19
                            • 2021-12-10
                            • 2022-06-10
                            相关资源
                            最近更新 更多