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版本报错如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
解决composer版本升级报错问题Failed to decode response: zlib_decode(): data error
FineUI中Newtonsoft.Json版本报错解决办法
Navicat 连接Mysql 8.0以上版本报错1251的详细解决方案