【发布时间】:2018-04-21 10:58:56
【问题描述】:
我正在尝试将我的 heroku 应用程序使用的 PHP 版本从默认的 7.1 更改为 7.0。当我尝试在composer.json 中定义它时,它会被忽略。我需要做什么?
【问题讨论】:
标签: php heroku composer-php
我正在尝试将我的 heroku 应用程序使用的 PHP 版本从默认的 7.1 更改为 7.0。当我尝试在composer.json 中定义它时,它会被忽略。我需要做什么?
【问题讨论】:
标签: php heroku composer-php
你不需要将heroku堆栈降级到18或任何东西,你可以在composer.json中更改所需的PHP版本,然后对你的项目运行composer update,最后将它部署/构建到云端
【讨论】:
除了更新 composer 文件,如果您的应用程序需要 "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 进行切换。
P.S:PHP 5.6 和 7.0 版将在 2018 年底结束生命周期。在此日期之后,PHP 维护人员将不会提供任何错误修复,包括关键的安全修复。强烈建议用户尽早将其应用程序更新到最新版本的 PHP 7.2。有关 PHP 版本支持时间表的更多信息,请参阅 PHP 官方网站上的Supported Versions page。
【讨论】:
您需要正确类型的版本选择器。阅读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
【讨论】:
从Selecting a runtime,您需要使用composer.json并在此处指定PHP版本:
{
"require": {
"php": "^5.6.0"
}
}
在你的情况下,请:
{
"require": {
"php": "7.0.0"
}
}
【讨论】:
{ "require": { "php": "~7.0" } } 但heroku 选择php 7.1
~。
composer update。
~ 很好,这里是正确的选择器,它只需要使用三位而不是两位。