Availability: Taking on new projects

1 min read

Upgrading PHP on a server you cannot take down

The risk in a PHP major version upgrade is never the language. It is the plugin nobody has updated since 2019.

A PHP major version upgrade is a compatibility problem wearing an infrastructure costume. The language change is documented and predictable. Your plugin set is neither.

Add the version, do not replace it

On a panel-managed server you can usually install a new PHP version alongside the existing one and switch individual sites over one at a time. That turns an all-or-nothing server event into a series of small reversible ones, and it means the rollback for any given site is a dropdown rather than a restore.

Test against your actual plugins

Clone to staging on the new version and exercise the paths that matter: checkout, forms, scheduled tasks, imports, anything calling an external API. Static compatibility scanners are a starting point and they miss things that only appear at runtime, particularly in code that catches its own errors.

Make the pool configuration durable

Hand-edited pool settings tend to be regenerated the next time the panel rewrites a config, which means your carefully tuned worker counts revert at the worst possible moment. Put changes wherever your panel supports custom templates so they survive.

Watch the logs, not the homepage

After the switch, the homepage loading proves very little. Deprecation notices from a plugin’s admin path, or a cron job failing on the new version, will show up in the error log hours before anybody reports them. Read it for a full day before calling the upgrade done.

Describe the symptom. I will tell you what it usually means.

Every enquiry gets a reply within one working day.