我正在尝试将我的heroku应用程序使用的PHP版本从默认的7.1更改为7.0。当我尝试在composer.json
中定义它时,它被忽略了。我需要做什么?
除了更新作曲家文件外,如果您的应用程序需要"php":^5.6.0"或7.0.32,您需要确保您使用的Heroku堆栈是"heroku-16"而不是"heroku-18"。
在 CLI 中运行heroku stack
以获取信息。默认情况下,它设置为最新版本"heroku-18",并使用安装了 PHP 7.2 的 Ubuntu 18.04。
如果它在"heroku-18"上,请使用命令heroku stack:set heroku-16
进行切换。
PS:PHP 版本 5.6 和 7.0 将于 2018 年底结束生命周期。在此日期之后,PHP 维护人员不会提供任何错误修复,包括关键的安全修复。强烈建议用户尽早将其应用程序更新到最新版本的 PHP 7.2。有关 PHP 版本的支持时间表的更多信息,请参阅 PHP 官方网站上的支持版本页面。
从选择运行时,您需要使用 composer.json
并在那里指定 PHP 版本:
{
"require": {
"php": "^5.6.0"
}
}
在您的情况下,请提供:
{
"require": {
"php": "7.0.0"
}
}
您需要正确类型的版本选择器。阅读 https://getcomposer.org/doc/articles/versions.md
在您的情况下,~7.0.0
允许 7.0.0 或更高版本,但不允许 7.1。
请记住在更改后更新composer.lock
,如 https://devcenter.heroku.com/articles/php-support#selecting-a-runtime 中所述(阅读整个部分;那里的橙色框实际上准确地回答了您在此处发布的问题)。
不过,您确实应该更新代码。对 PHP 7.0 的支持将在几天后结束,PHP 团队将不再提供除安全修复之外的更新。请参阅 http://php.net/supported-versions.php
Yo 不需要将 heroku 堆栈降级到 18 或任何东西,您只需在 composer.json 中更改所需的 PHP 版本,然后针对您的项目运行 composer update,最后将其部署/构建到云中