PHP7.0环境部署Laravel5.5报Composer依赖需PHP>=7.2.5错误如何解决
问题根因
composer.json顶层依赖虽声明了PHP>=7.0的约束,但子依赖包后续迭代可能推出放弃PHP7.0支持的新版本,若安装依赖时未固定平台PHP版本,composer会按照执行命令环境的PHP版本拉取最新兼容包,部署到PHP7.0的服务器运行时就会触发版本不匹配报错。
可行解决方案
- 方案1:固定平台PHP版本后重新安装依赖(最推荐,兼容性有保证)
首先在项目根目录执行命令固定composer匹配的PHP版本:
之后删除项目下的composer config platform.php 7.0.33vendor目录和composer.lock文件,再执行生产环境的依赖安装命令:
该操作会强制composer按照PHP7.0的版本约束拉取所有兼容的依赖包,不会拉取需要更高PHP版本的子包。composer install --no-dev --optimize-autoloader - 方案2:临时关闭平台版本检查(应急上线用)
若需要快速上线,可以在安装依赖时添加忽略平台检查的参数:
该方案会跳过所有PHP版本、扩展的合规校验,上线后需要全面测试所有功能,避免因为依赖用到高版本PHP特性出现运行时报错。composer install --no-dev --optimize-autoloader --ignore-platform-reqs - 方案3:手动约束冲突依赖的版本
如果执行上述方案后仍有报错,可以查看composer.lock文件,定位到要求PHP>=7.2.5的依赖包,在composer.json中给该包添加更低的版本约束。比如当前配置中的symfony/thanks包的更高版本已不再支持PHP7.0,可以将其版本约束修改为:
修改后再重新执行方案1的安装步骤即可。"symfony/thanks": "1.0.*"
内容的提问来源于stack exchange,提问作者Anto S
相关产品推荐
相关产品推荐

