Since the beginning of the platform, when a PHP application was deployed on the platform, the version 5.6.x of PHP was chosen. This time comes to an end, since now and for the future, the platform will follow the last stable version of PHP as a default choice.
Released in August 2014, PHP 5.6 is the last minor version of the PHP 5 branch. This branch is coming to its End of Life (EOL). It means that in January 2019, no more stability or security patches will be released for this version, even if a major security breach is revealed. Obviously, the first motivation of this default version change on the platform is to ensure that your applications keep being safe.
For a long time a long list of open-source projects were only compatible with the branch 5.6.x of PHP, but these last four years we have observed an important improvement in the PHP community and the required developments have been done to switch to the new 7.x versions. As most project are now compatible, this change will let you enjoy by default the performance improvement which have been brought by the 7.0 / 7.1 and 7.2 versions. Benchmarks have shown that PHP 7.2 is between two and three times faster for a WordPress application for instance.
PHP 7.0 has been released in December 2016, and since then, all the new versions have always been compatible with the platform. At this day the last stable version is PHP 7.2.11, and will be deployed by default by the platform if no indication is given through the application configuration.
When PHP 7.2.12 will be available, automatically, this version will be the new default version deployed alongside your applications. Then if a new major version is released, let's say PHP 7.3.0, our deployment system will follow it equally.
Of course, you might want to specify a version branch to ensure the stability of your application, it has been taken into account, the next section will help you achieving this.
Absolutely no problem, all the previous versions (5.6.x included) are still available, but you need to specify them in the composer.json of the project. For instance, the following configuration would install the last patched version of PHP 5.6, at this day: 5.6.38.
{
"config": {
"platform": {
"php": "5.6"
}
}
}
All the pre-existing method to define PHP version are still compatible:
* **composer.json** value at key `.extra.paas.engines.php`
* **composer.json** value at key `.require.php`
You'll get more information in our documentation: https://doc.scalingo.com/languages/php/start
This kind of change is never an easy task for a platform like Scalingo as some deployments might be broken by such change. If you encounter any difficulty related to this change, don't hesitate to use the in-app chat available in your web dashboard.
Photo by Pavel Nekoranec on Unsplash
At Scalingo (with our partners) we use trackers on our website.
Some of those are mandatory for the use of our website and can't be refused.
Some others are used to measure our audience as well as to improve our relationship with you or to send you quality content and advertising.