Farewell legacy PHP 5.6, welcome PHP 7.2 as default

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.

Motivation of this 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.

New default behavior

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.

I want to keep the version 5.6, or choose precisely my version

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"
    }
  }
}

You’ll get more information in our documentation: https://doc.scalingo.com/languages/php/start

To conclude

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