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

Posted

技术标签:

【中文标题】Composer要求的PHP版本报错如何解决?【英文标题】:How to solve the error of PHP version required by Composer? 【发布时间】:2022-01-05 17:44:02 【问题描述】:

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

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

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

我不明白这个错误,因为我的服务器是 8.0.10 版

root@xxxx:/var/www/html/myweb# php -v
PHP 8.0.10 (cli) (built: Aug 25 2021 17:05:38) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.10, Copyright (c) Zend Technologies
    with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
    with Zend OPcache v8.0.10, Copyright (c), by Zend Technologies

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

如何修复php版本的composer错误?

我的 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"
        
    


【问题讨论】:

> = 8.0.0 看起来像是一个损坏的需求,应该是 >= 8.0.0(少一个空格)。您能否分享更多详细信息,例如您正在使用的composer.json,如果这还没有帮助? @NicoHaase 这是我写问题时的错。对不起 你能分享更多细节吗?给定的composer.json 毕竟不需要 PHP 8 【参考方案1】:

您的作曲家似乎从不同的 php 版本运行。

您可以通过命令composer -vvv about查看您的composer php版本

尝试从不同的 php 运行 composer,例如:/path/to/bin/php /path/to/composer update

如果可行,您可以为该命令设置别名。

【讨论】:

请分享更多细节。此检查如何解决问题? 如果运行 composer 的 php 版本低于 8.0,你会得到类似你的错误。所以你需要从其他 php 版本运行你的作曲家,比如/path/to/bin/php /path/to/composer update。如果正确,可以给这个命令设置别名 请通过编辑为您的答案添加所有说明。此外,根据给定的附加信息,如果您认为这些提示可以解决问题,最好将此问题标记为 ***.com/questions/32750250/… 的重复项 composer -vvv 返回我:使用 PHP 8.0.10 运行 2.1.6 (2021-08-19 17:11:08) 但是错误仍然存​​在:Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 8.0.0"。

以上是关于Composer要求的PHP版本报错如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

mysql版本报错!!(已解决)

解决composer版本升级报错问题Failed to decode response: zlib_decode(): data error

FineUI中Newtonsoft.Json版本报错解决办法

Navicat 连接Mysql 8.0以上版本报错1251的详细解决方案

2017-01-26--编译Linux内核2.6.30版本报错解决

关于安装Vue CLI 4.x版本报错的解决方法