|Issue:||Major version update from PHP 5.6 to PHP 7.1|
|Affects:||ALL Web hosting users|
|When you can choose to update:||Now|
|When all accounts will be updated:||October 1, 2018|
- Introduction: Biggest PHP update in over a decade
- Options: Update anytime, or wait until October 1
- Updating your software and getting help
- Tech details: Compatibility, deprecated warnings, and error logs
1. Biggest PHP update in over a decade
The PHP language has been in its 5.x series since the early 2000s, but in December 2015 it finally got a major overhaul with the start of the 7.x series. This new branch provides massive improvements in speed and memory usage, so web sites will load faster and place less strain on the server’s resources, but it also changes or jettisons a lot of legacy features used by some older PHP-based software. This means that outdated PHP code may not be compatible and may cease functioning.
With all support for the 5.x series ending in 2018, we have allowed as much time as we reasonably could for software packages run by our users to receive the necessary updates. We must update all of our systems to 7.x this calendar year, and all users’ web site software must therefore also be updated for PHP 7 compatibility. That will require some work for many users, but we are working to make the process as easy and flexible as possible.
And to be precise, we will be starting out with the PHP 7.1 release, available since December 2016, plenty of time for application developers to work out any bugs. The current version is PHP 7.2, but that was only released at the end of November 2017, and we have seen indications that PHP 7.1 is a safer bet for minimizing compatibility problems for our users. We plan to update to PHP 7.2 long before security support for PHP 7.1 ceases in December 2019.
2. Options: Update anytime, or wait until October 1
You have two options for moving to the new PHP 7 environment:
- If you know that your PHP code is already compatible with PHP 7, as the current versions of all popular publicly-maintained projects should be (WordPress, Drupal, Joomla, etc.), then we can switch you over to PHP 7 at any time. Just make sure you’ve applied updates to bring all installed site software up to current versions, and then send us a support request to update your account to PHP 7.
- If you do not request a PHP 7 update by October 1, 2018, your account will be updated automatically along with the remainder of our users on that night. So, whether you run a publicly-maintained software package or your own custom-developed PHP code, or any combination of the two, you will need to ensure it has all been reviewed and updated for PHP 7 compatibility by then.
Note that if you do have us switch your account to PHP 7 before the October 1 deadline and it turns out not to be fully compatible, we can easily switch you back to PHP 5.6 again. You can then work on fixing any issues that came up, and switch back to PHP 7 when they are all resolved.
3. Updating your software, and getting help
You will need to update your web site software before our system update. This is your responsibility, and we regret that we do not have the capacity to manage it for you, but for many it will be as simple as a few clicks. If you end up needing help, an experienced Web developer or IT consultant should be able to handle it quickly.
For most open-source packages, updates take just a minute and can be as simple as a few clicks in your software’s admin interface – see your software’s official web site for help. Be sure to update all plugins or modules, in addition to the core software. But some packages (eg. possibly Drupal, and some major-version upgrades of other CMSes), will require a more manual process involving uploading and unpacking files and using the Unix command line. And any custom-written PHP code in your account will need to be reviewed and probably updated by a developer.
Here is a quick roundup of PHP 7.1 compatibility for the latest versions of the most popular open-source packages:
- WordPress: Core is all good, but be sure to check all themes and installed plugins.
- Drupal: Drupal 8 core good, Drupal 7 core good as of 7.55, Drupal 6 no good. Be sure to check all installed modules.
- Joomla: Version 3.5 or later good (mentioned in footnote). Be sure to check all installed modules.
- CiviCRM: Compatibility matrix indicates 5.5 is good on PHP 7.1, 4.7 only fully tested on PHP 7.0 but may work fine on 7.1, 4.6 no good.
4. Tech details: Compatibility, deprecated warnings, and error logs
The best way to know if your site software is compatible with PHP 7 is to check the current requirements or release notes on the developer’s web site. But if you can’t find that information, or if your software is not a publicly maintained open source project, then you will need to look instead for Deprecated warnings in your web site’s error logs. Any code that will break under PHP 7 will generate log lines beginning with “PHP Deprecated”, and all such lines indicate code that will probably break under PHP 7.
To see these PHP warnings, connect to your account by SFTP or SSH and change directory to weblogs/, then error/, and look for the file named for your domain (being sure to check all your domains, if more than one):
On the SSH command line, you could then run a search like “
grep Deprecated your-domain“, or you could see currently logged errors in real time with a command like “
tail -f your-domain” while loading the site in your Web browser. You can also just download the error logs via SFTP and then view them on your own computer. The logged warnings will tell you exactly which PHP script triggered them, and exactly which deprecated feature of PHP was invoked.