【问题标题】:Your Composer dependencies require a PHP version ">= 8.1.0"您的 Composer 依赖项需要 PHP 版本 \">= 8.1.0\"
【发布时间】:2022-10-19 22:01:14
【问题描述】:

我在使用 Laravel 9 时遇到此错误,我安装了 PHP 8.1.7

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

我可以看到其他人提出了这个问题,但似乎没有一个解决方案有效

【问题讨论】:

  • 看起来您有多个 PHP 版本。在您使用 composer 的同一终端中键入 php -v
  • /usr/local/bin# php -v PHP 8.1.7 (cli) (built: Jun 25 2022 08:12:59) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.7, Copyright (c) Zend Technologies with Zend OPcache v8.1.7, Copyright (c), by Zend Technologies uninstalled and reinstalled Laravel (laravel 9) still same issue
  • composer install 时何时会出现此问题?

标签: php laravel composer-php digital-ocean


【解决方案1】:

我遇到了同样的问题,这是因为我在命令行上配置了 PHP 8.1 的版本,而我将 PHP 模块保持在 8.0。

所以 PHP_VERSION_ID 给了我 80020,而 php -v 给了我 8.1.7。

它提醒我将 PHP 模块重新配置为 PHP 8.1 版:

sudo a2dismod php8.0

sudo a2enmod php8.1

sudo systemctl restart apache2

然后一切都按预期进行。

参考:

【讨论】:

  • 我只是另外发布了这个link。我必须在 debian 服务器上安装 php 8.1,并使用 $sudo update-alternatives --config php 选择它。然后一切正常
【解决方案2】:

提示

composer.json 文件中添加以下行:

{
    "config": {

        "platform-check": false
    }
}

或者设置版本:

{
    "config": {

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

并运行composer dump-autoload

【讨论】:

    【解决方案3】:

    如果 @eril answer 没有通过禁用旧 PHP 版本来帮助您

    sudo a2dismod php8.0
    sudo a2enmod php8.1
    sudo systemctl restart apache2
    

    还使用正确版本的 PHP 检查作曲家

    composer -vvv about 2>&1 | grep "PHP"
    

    如果作曲家关于已经显示了正确版本的 PHP,然后通过将 PHP_BINARY 放入 vendor/composer/platform_check.php 中来检查 composer 正在使用的真实 PHP 二进制路径,如下所示:

    if (!(PHP_VERSION_ID >= 80100)) {
        $issues[] = 'You are running ' . PHP_VERSION . ' located at: ' . PHP_BINARY;
    }
    

    就我而言,旧版本的php-fpm已启用。

    a2disconf php8.0-fpm 
    a2enconf php8.1-fpm 
    sudo systemctl restart apache2
    

    【讨论】:

      【解决方案4】:
      Your Composer dependencies require a PHP version ">= 8.1.0"
      

      当我将 php 从 8.1 降级到 v7.4 时,我遇到了同样的问题。我不知何故搞砸了 php7.4-fpm mod。但是,当我再次尝试升级我的 php v8.1 时,作曲家开始抱怨该错误。 我只是删除了我的 7.4 和 8.1 两个 php 版本,然后只重新安装了 8.1,这解决了我的问题。

      要删除,这是我遵循的步骤....

      sudo apt-get purge php8.*
      sudo add-apt-repository ppa:ondrej/php
      sudo apt-get update
      sudo apt-get install php8.1
      

      最后,

      sudo service apache2 restart 
      

      【讨论】:

        【解决方案5】:

        我有相反的问题

        本地网络服务器 收听http://127.0.0.1:8000 Web 服务器正在使用 PHP FPM 8.1.11(来自 $PATH 中的默认版本)

        本地域

        工作人员 PID 99459:/usr/bin/php7.4 -S 127.0.0.1:44021 -d variables_order=EGPCS /home/administrateur/.symfony5/php/99eca12992001a82d378aa4c5b20d076d35d73c4-router.php

        有人可以解释我该怎么做吗?我试图清除 php7.4 但它不起作用。谢谢

        【讨论】:

          【解决方案6】:

          直到我找到解决方法,但它正在工作 这就是我所做的:

          • 下载php 8.1.9 (nts)
          • 在 bin/php/ 中提取它(我使用 Laragon)
          • 将 php 7.14.19 移动到一个新文件夹中(只是为了防止)
          • 并将我的 php 8 文件夹重命名为 php 7 文件夹名称
          • 它仍在工作

          只需找到您服务器的 php 文件夹即可

          【讨论】:

          • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
          猜你喜欢
          • 2022-11-23
          • 2021-09-26
          • 2021-12-10
          • 2021-04-21
          • 2021-03-28
          • 2021-12-21
          • 2021-08-16
          • 2022-07-20
          • 1970-01-01
          相关资源
          最近更新 更多