PHP应用部署至Heroku失败求助:运行时版本配置错误
解决Heroku部署PHP应用时的运行时版本错误
我明白你在把PHP应用部署到Heroku时碰到这个版本检测的问题了,别担心,这个问题本质上是Heroku没法自动确定你的PHP运行时版本,咱们一步步来搞定它:
错误原因拆解
Heroku的PHP构建包需要从你的composer.json的require字段里明确获取PHP版本要求。如果只有require-dev(开发依赖)里包含了PHP版本相关的依赖,它没办法自动推断出生产环境要用的版本,所以就会抛出你看到的这个错误。
具体解决步骤
打开并修改
composer.json
找到项目根目录下的composer.json文件,在require节点下添加PHP版本的指定。你可以根据自己应用的实际需求选择合适的版本,比如兼容PHP 7.4及以上小版本,或者限制在某个大版本范围内:{ "require": { "php": "^7.4", // 示例:兼容7.4.x所有更新版本 // 这里保留你原本的其他生产依赖,比如laravel/framework之类的 }, "require-dev": { // 你的开发依赖内容不变 } }版本号的写法可以灵活调整:
^7.4:允许7.4.x的所有更新,不包含8.0及以上>=7.4 <8.0:严格限制在7.4大版本内8.1.*:固定使用8.1的小版本更新
更新
composer.lock文件
在本地终端运行以下命令,让Composer同步版本要求到锁文件里:# 如果只想更新PHP版本相关的依赖,用这个 composer update php # 如果想顺便更新其他依赖,用这个 composer update提交修改到Git仓库
把修改后的composer.json和composer.lock提交到Git:git add composer.json composer.lock git commit -m "添加PHP版本要求以适配Heroku部署"重新部署到Heroku
最后推送到Heroku分支完成部署:git push heroku main
这样操作后,Heroku就能明确识别到你指定的PHP运行时版本,顺利完成平台包的安装和应用部署了。
内容的提问来源于stack exchange,提问作者besevero
相关产品推荐
相关产品推荐

