当前位置: 首页 > 知识库问答 >
问题:

如何解决Composer要求的PHP版本错误?

梁渊
2023-03-14

我有一个在Debian 11服务器上使用Yii2框架制作的网站。

当我在服务器上执行composer update时,它会在我的web中返回以下错误:

Composer在您的平台中检测到问题:您的Composer依赖项需要PHP版本”

我不明白的错误,因为我的服务器是版本8.0.13

root@xxxx:/var/www/html/myweb# php -v
PHP 8.0.13 (cli) (built: Nov 22 2021 09:47:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies
     with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies

我试过使用以下命令:composer install--ignore platform reqs,它可以正常工作。但是,我希望能够更正错误,并且composer更新也能正常工作。

如何修复PHP版本的作曲家错误?

My composer.json:

{
    "name": "yiisoft/yii2-app-basic",
    "description": "Yii 2 Basic Project Template",
    "keywords": ["yii2", "framework", "basic", "project template"],
    "homepage": "http://www.yiiframework.com/",
    "type": "project",
    "license": "BSD-3-Clause",
    "support": {
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
        "forum": "http://www.yiiframework.com/forum/",
        "wiki": "http://www.yiiframework.com/wiki/",
        "irc": "irc://irc.freenode.net/yii",
        "source": "https://github.com/yiisoft/yii2"
    },
    "minimum-stability": "stable",
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.5",
        "yiisoft/yii2-bootstrap": "*",
        "yiisoft/yii2-swiftmailer": "*",
        "kartik-v/yii2-widget-switchinput": "*",
        "kartik-v/yii2-widget-datepicker": "@dev",
        "kartik-v/yii2-widget-datetimepicker": "1.4.2",
        "kartik-v/yii2-date-range": "1.6.7",
        "kartik-v/yii2-widget-activeform": "@dev",
        "kartik-v/yii2-widget-depdrop": "@dev",
        "kartik-v/yii2-widget-select2": "@dev",
        "kartik-v/yii2-grid": "@dev",
        "kartik-v/yii2-widget-fileinput": "@dev",
        "kartik-v/yii2-mpdf": "@stable",
        "kartik-v/yii2-popover-x": "*",
        "bower-asset/jquery": "@stable",
        "bower-asset/jquery.inputmask": "@stable",
        "bower-asset/punycode": "@stable",
        "kartik-v/yii2-export": "*",
        "opensooq/yii2-firebase-notifications": "dev-master",
        "yiisoft/yii2-imagine": "^2.1",
        "bupy7/yii2-widget-cropbox": "*",
        "kartik-v/yii2-editable": "*",
        "miloschuman/yii2-highcharts-widget": "^6.0",
        "newerton/yii2-fancybox": "dev-master",
        "nterms/yii2-pagesize-widget": "*",
        "yiisoft/yii2-jui": "^2.0",
        "kartik-v/yii2-widget-alert": "*",
        "kartik-v/yii2-sortable": "*",
        "wbraganca/yii2-dynamicform": "*",
        "kartik-v/yii2-sortable-input": "dev-master",
        "phpoffice/phpexcel": "*",
        "yii2tech/html2pdf": "^1.0",
        "boundstate/yii2-htmlconverter": "dev-master",
        "kartik-v/yii2-widget-sidenav": "*",
        "bower-asset/bootstrap": "^3.3",
        "npm-asset/jquery": "^2.2",
        "phpoffice/phpspreadsheet": "1.20.0"
    },
    "require-dev": {
        "yiisoft/yii2-codeception": "*",
        "yiisoft/yii2-debug": "*",
        "yiisoft/yii2-gii": "*",
        "yiisoft/yii2-faker": "*"
    },
    "config": {
        "process-timeout": 1800,
        "github-oauth": {

        }
    },
    "repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
    ],
    "scripts": {
        "post-create-project-cmd": [
            "yii\\composer\\Installer::postCreateProject"
        ]
    },
    "extra": {
        "yii\\composer\\Installer::postCreateProject": {
            "setPermission": [
                {
                    "runtime": "0777",
                    "web/assets": "0777",
                    "yii": "0755"
                }
            ],
            "generateCookieValidationKey": [
                "config/web.php"
            ]
        },
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    }
}


共有1个答案

凌联
2023-03-14

似乎您的编写器是从另一个php版本运行的。

通过composer-vvv about检查它

 类似资料:
  • 我们在您的服务器(最大5.3.5)和开发机器(最大5.5.9)上混合运行不同的PHP版本。 现在我们遇到了一个问题,我们做了一个“作曲家更新”来获取一些外部捆绑包的最新版本。因为你的composer.json看起来像 我们得到了一些需要PHP 5.5的捆绑包。在我们的开发机器上没有问题,但在服务器上:( 有没有可能告诉composer需要5.3.3到5.3.5之间的PHP版本?还是最大可用版本?

  • 我只是想知道composer如何在检查需求时检查要使用哪个php。我使用MacOS和终端类型: 结果是这样的: 当我检查php版本时: 结果是: PHP 5.6.10 (cli)(创建时间:2015年6月12日14:08:56)版权所有(c)1997-2015 PHP Group Zend Engine v 2 . 6 . 0,版权所有(c)1998-2015 Zend Technologies

  • 最近,我做了很多关于作曲家最小稳定性的研究。我进入了官方文档,阅读了关于最小稳定性变化的内容。但是,即使如此,我也无法让编写器安装依赖项。 我有根包和另外两个包,我们称它们为packageA和packageB。当我需要根包中的packageB时,packageB必须带上packageA,但这就是我得到错误的时候。 您的需求无法解析为一组可安装的包。 问题1 packageB/packageB开发主

  • 第一次安装Composer,已经安装了Composer-Setup.exe,在命令行输入composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,执行报错了,有大佬能帮我看下怎么解决吗?感谢!

  • 当我运行composer update时,我得到了这些错误,问题是我已经安装了PHP7,但我不知道为什么会得到这个错误(我使用的是docker-compose) 这是我的php版本

  • 我已在windows 8.1上安装了composer。我使用它下载drupal发行版和模块。我还安装了一个开发桌面。正如您所知,dev desktop附带了不同版本的php,并且它有单独的文件夹。我已经安装了使用PHP5.6的composer。如何使用PHP7? 我应该卸载作曲家并再次安装还是什么?