In our last blog post discussing PHP versions, we promised you an update on the PHP version schedule in Q1 of 2022, and yet here we are on the cusp of Q3 with that news. We have a couple of reasons for that delay in communication:
- WordPress Core needed a little time to catch up in terms of compatibility with PHP 8.1. Now that WordPress 6.0 has been released with full support for PHP 8.1, we can confidently set PHP 8.1 as “Latest” when setting your PHP version.
- In November 2021, Pagely joined forces with GoDaddy! It’s been quite an adventure over the first half of 2022 – realigning our efforts and embarking on a corporate integration with our new friends. We’ve been learning so much from each other and have even been able to teach them how to run a rock-solid WordPress hosting platform — the Pagely way. 😉
You can read all about the reasons we joined GoDaddy here, straight from our original co-founder and CEO, Joshua Strebel.
With all of that out of the way, let’s get on to the good stuff! It’s time to update you all on what you’ve been waiting to hear more about — how we sunsetted PHP 7.3 last year, the upcoming sunset of PHP 7.4, and the new PHP version changes that will be coming to the Pagely platform over the next 30 days.
The PHP 7.3 Sunset Was a Success
Late last year, we successfully transitioned our whole platform from PHP 7.3 to PHP 7.4. Sounds scary, right? We’re proud to say that most of our customers didn’t have to lift a finger during the entire process. After all, that’s why they choose Pagely — for a fully managed WordPress experience from top to bottom.
How We Pulled It Off
Well, we rolled up our sleeves and tested, quite literally, every single site that was using PHP 7.3. Behind the scenes, we tested every single one of those sites using PHP 7.4 to make sure that nothing would break when rolling out the upgrade. For the few sites that showed compatibility issues, we kept those pinned to PHP 7.3, while the overwhelming majority saw a buttery-smooth transition over to PHP 7.4.
Dockerize All the Things!
Converting our fleet to use Docker-based PHP-FPM environments has been immensely valuable. Not only has it provided for additional flexibility, such as selecting new PHP versions and rapidly deploying security updates, it also makes testing new PHP versions a breeze.
Thanks to our new Dockerized PHP approach, we were able to launch separate Docker containers for each and every app. From there, we could run our tests under an alternate version, complete with real transactional operations, all while live traffic was still being handled by the current version.
This approach is great for end-to-end testing. Compared to other strategies, there’s more than a few benefits:
- Compatibility testing takes hours to complete (ain’t nobody got time for that).
- Cloning sites takes heavy lifting and often direct collaboration with site owners.
- YOLOing it is always a bad time.
Our philosophy is to simplify your hosting experience into a fully-managed WordPress platform. What better way to push the status quo than to create fresh, new solutions to pain points that so many enterprise WordPress sites face? Necessity breeds innovation, as they say!
Putting It in Perspective
To put it in perspective, what if I tasked you with end-to-end testing tens of thousands of WordPress sites on a new PHP version? If you’re not shaking in your boots yet, you should be. Even with all of the automation and test suites out there, it’s quite the undertaking.
With our new Docker-based strategy, we blasted through compatibility checks on the entire fleet in only a day or two.
When it was time to perform the actual upgrade from PHP 7.3 to 7.4, making sure to hold back the sites that we identified as potentially problematic, every single site passed further testing and handled the transition seamlessly. No hiccups, no extended downtime, just smooth sailing.
We’re quite proud of that outcome, and we hope you did something fun or productive with that time you gained by letting Pagely handle the heavy lifting. In the end, only a small number of sites tested (less than 1%) did not pass; a statistic we’re happy to attribute to our platform’s automatic updates and our team’s diligent work in providing world-class WordPress support on a continuous basis.
Upcoming Changes
PHP 7.4 reaches full End-of-Life later this year — roughly four months from writing this post.
Considering how hugely successful our last testing strategy was, we plan to repeat that same approach with PHP 8. We will be testing every site currently set to the “Stable” version preference for compatibility with PHP 8.0, alongside testing every site on the “Latest” version preference for compatibility with PHP 8.1.
As PHP 8.0 rolls out as the new stable option, PHP 7.4 will remain the “Sunset” version until the end of the year, giving you extra time to handle any compatibility issues that we may spot in our testing.
PHP 8 Compatibility Testing and Release Timeline
Beginning the week of August 8, 2022 (roughly 30 days from now), we will make the following changes to what “Sunset”, “Stable”, and “Latest” map to:
- PHP 7.4 “Sunset” will remain as “Sunset”, until November 28, 2022 (full EOL)
- PHP 7.4 “Stable” will transition to PHP 8.0
- PHP 8.0 “Latest” will transition to PHP 8.1
- After November 28, 2022, when PHP 7.4 officially reaches EOL, we will transition “Sunset” to 8.0.
Official notices will be posted at https://status.pagely.com/ when the transition begins.
Preparing for Upcoming PHP Version Changes
We’re asking all Pagely customers to log into Atomic and take a look at the PHP version setting for each of your sites.
When checking your PHP version, you may notice that both “Stable” and “Sunset” say that they are mapped to PHP 7.4. If you’re currently set to use “Sunset”, we encourage you to update that preference in Atomic to “Stable” so you can get onto newer stable versions earlier, as well as have a wider window of time when you can fall back to “Sunset” in case of compatibility issues.
Don’t worry – as both options are currently mapped to the same PHP 7.4 version, it won’t cause any immediate changes. This simply ensures that you’re on the correct upgrade path going forward. As a general rule, we do not recommend keeping sites to the “Sunset” preference on an ongoing basis; only using the Sunset version when necessary.
Checking PHP Compatibility
PHP 8.0 (Upcoming New “Stable” Version)
Following its release in November of 2020, PHP 8.0 has been stable for some time. As with any new major software version, with all of the new features and performance improvements, comes new compatibility changes.
The vast majority of WordPress plugins, as well as WP Core itself, already have compatibility updates for PHP 8.0.
It’s worth noting that PHP 7.4 has not gotten any performance updates or bug fixes beyond security patches for about 7 months now; meanwhile, 8.0 has been getting all of the above. Although the transition from PHP 7.4 to 8.0 is a pretty safe upgrade at this point in time, we will continue to test every site when we begin rolling changes out.
Full documentation about compatibility when migrating to 8.0 from 7.4 is available on php.net.
PHP 8.1 (Upcoming New “Latest” Version)
Preliminary support in WordPress Core for PHP 8.1 arrived with the release of WordPress 6.0.
At this stage, we only recommend using PHP 8.1 on sites using WP 6.0. Although WordPress 6.0 is mostly compatible with PHP 8.1, there is still work that is currently slated for the WordPress 6.1 milestone before all known bugs can be considered squashed.
In addition to WordPress core updates, plugins and themes may need more time to catch up too. We’ve seen good progress on this front as we continue to review release the notes for the most popular plugins out there. Fortunately, the WordPress Core team is aware of the changes needed for full compatibility with 8.1, thanks to the awesome early adopters that are part of the WordPress Community.
More information on these outstanding items can be found at the following links:
For the overall PHP changes outside of what’s being done in WordPress core, here’s a handy link covering migration from PHP 8.0 to 8.1.
If You Don’t Switch From “Sunset” to “Stable” on Your Own
We will be changing the version mappings as described above, and will test your sites before doing so. If all tests pass, your sites will begin using 8.0 instead of 7.4 if they are set to “Stable”.
Although your PHP version preferences that are set to “Sunset” will remain the same, the underlying version mapping will change from PHP 7.4 to 8.0. Likewise, if your site’s PHP version is set to set to “Latest”, we will keep you on that preference and test things before mapping “Latest” to 8.1.
What Happens After November 2022
We will be re-evaluating the state of WordPress Core an determining what the versions preferences should map to at that time.
Overall, we want to make the latest versions available to you as soon as they come out, provided that WordPress Core can actually run on it. Depending on how things look, we may even introduce PHP 8.2 as a “Beta” option shortly after it’s released!
What Happens if You “Locked” Your PHP Version to 7.4 or 8.0
No changes in the immediate future, but we will make a change in November for sites running PHP 7.4 to start using 8.0.
We strongly recommend that you review your site code if you are locked to 7.4, to make sure that your code will be compatible with 8.0. We will be reaching out directly about this when we get to testing, but we encourage you to get a head start on that to make the most of the time from now until full EOL.
Additionally, we recommend disabling the version lock and sticking to the overall version preferences of “Stable” or “Latest” going forward. This allows you to be included in the rolling updates over time without needing to manually change the setting or to have it be changed by our team.
Thank you for reading this and please don’t hesitate to contact our Support Team with any questions or if you need a helping hand — we’re here for you 24/7.