43

当我转到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。

4

21 回答 21

45

遵循这个技巧

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

    “平台检查”:假

  2. php artisan config:cache

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

于 2021-01-21T09:03:49.940 回答
30

项目或全局composer.json文件:

{
    "config": {

        "platform-check": false
    }
}
于 2021-01-09T15:04:23.730 回答
9

问题:

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

Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.3.0"。

解决方案:

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

于 2020-12-17T14:03:05.510 回答
8

这对我有用:

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

调整php7.2到您当前的模块。

于 2021-05-04T00:00:34.710 回答
4

如果您像我一样由于特定原因不得不在您的机器(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后不要忘记取消注释相关的三行。

于 2021-04-28T12:22:24.730 回答
4

Hashmat Waziri 的回答是正确的,但是如果有人想使用您平台的版本,无论 Composer 需要什么,他/她都可以根据他/她的系统将代码设置到composer.json文件中,例如:

"config": {
    "platform": {
        "php": "7.1.0"
     }
}
于 2021-05-28T14:55:47.870 回答
4

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

composer global update
composer dump-autoload
于 2021-03-25T17:04:18.967 回答
2

忽略不是正确的选择。您必须升级您的 PHP 版本。考虑到现在,我们已经有了 PHP 8,所以对于 7.2 版本,你已经远远落后了。

Linux 用户

根据您的发行版,如果您使用的是像 Ubuntu 这样的Debian衍生产品,请使用此链接指南:在 Ubuntu 上将 PHP 版本升级到 PHP 7.4,或者只需 google 即可,一切都会好起来的。

Windows 用户

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

  2. 如果您希望升级全球 Windows PHP 版本,您可以使用Web Platform Installer。这对我来说是在 Windows 上执行此操作的最简单方法之一。有关更多信息,请遵循安装和配置 PHP

于 2021-03-21T16:19:46.120 回答
2

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

看截图

于 2020-12-17T12:45:24.287 回答
1

从 PHP 8.0 降级到 7.2 的相同问题需要运行旧项目。

我如何解决我的问题:

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

这解决了我的问题,让我可以在没有进一步问题的情况下在不同版本之间切换,唯一的要求是使用:

composer global update

切换 PHP 版本以刷新全局依赖项后。

我不知道是什么导致了这个问题。也许在 PHP 版本切换期间发生了一些有趣的事情,但我们无法找到问题的原因。

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

于 2021-06-21T14:22:02.840 回答
1

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

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

composer install --ignore-platform-reqs

或者

composer update --ignore-platform-reqs
于 2022-01-07T10:38:36.720 回答
1

正如原始问题下的评论中所述,与其只是试图隐藏错误或绕过它,不如完全解决它以确保应用程序按照应有的方式执行。为此,我们必须更新正在使用的 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

更详细的解释可以在这里找到

于 2021-11-07T18:24:53.550 回答
1

所以,在与这个问题作斗争之后,

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并检查结果以查看您安装了哪些软件包。显然,您必须针对系统使用的包装系统调整上述内容。

于 2021-05-13T12:43:35.270 回答
0

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

向我显示的错误:

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

  • XAMPP 安装了多次(没有卸载以前的)。
  • 我卸载了程序列表中显示的那个。
  • 重新启动了电脑。
  • 然后删除了XAMPP的所有目录。
  • 重新启动了电脑。
  • 再次安装XAMPP。
  • - 就这样。
于 2022-01-07T06:40:27.220 回答
0

我修复我的最好方法是

转到您的 xampp 文件夹,查找 php.ini

将此 ;extension=mysqli 更改为extension=mysqli 并将 ;extension=openssl 更改为extension=openssl

重新启动ApacheMySQL

完成(工作)

于 2022-02-14T15:57:50.010 回答
0

对于 cPanel 用户,这是最新的选择,这是 2022 年的最新选择

在此处输入图像描述

在此处输入图像描述

于 2022-02-14T06:13:45.333 回答
0

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

在我的情况下,我试图让一个旧的应用程序运行,使用 PHP 7.2,所以不能只更改 PHP 版本。

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

例如,

composer require <package>:<version>

您可能需要多次执行此操作。在我的情况下,我必须在我的应用程序满意之前安装需要 PHP 7.4 和需要 PHP 7.3 的包。

于 2021-11-29T10:56:36.107 回答
0

我在我的 VPS 上的 Aapanel 上遇到了这个问题。我已经拥有最新版本的 PHP(PHP 8.1),但每次尝试运行 composer 命令时,错误并没有消失。我运行了许多版本的 PHP,我尝试了所有建议的选项,但没有一个有效。所以我认为也许作曲家看到了错误的 PHP 版本并决定卸载较低版本(7.2,7.4)并解决了错误!

于 2022-02-19T17:27:47.760 回答
-1

我设法通过下载更新版本的 PHP 解决了这个问题,该版本同时与从这里安装的 Apache 版本兼容!。

Laragon界面看到Apache版本是“httpd 2.4.35 win64 VC15”,于是找了一个有这个“vc15”的PHP版本。

我下载了“php-7.4.19-Win32-vc15-x64”并在我的 Laragon 中选择了它。在此链接中,您可以在这里找到如何替换 Laragon 中的 PHP 版本!

于 2021-05-07T21:24:45.820 回答
-1

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

sudo apt-get update
sudo apt install php-xml
sudo apt-get install php-mbstring
sudo reboot
于 2021-05-06T06:14:13.113 回答
-3

首先,阅读警告!它说不要以 root 身份运行Composer !其次,您可能在本地使用XAMPP,默认情况下它具有所需的 PHP 库。

但是在您的服务器中,您缺少ext-domphp-xml有你需要的所有相关包。因此,您可以通过运行来安装它:

sudo apt-get update

sudo apt install php-xml

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

sudo apt-get install php-mbstring

然后运行:

composer update

然后运行:重新加载您的Apache 服务器

sudo systemctl reload apache2
于 2021-04-25T17:44:16.513 回答