Planning a PHP Update: Host Patch, Upgrade or Escalate?
Most PHP security updates on managed hosting are handled by the host, and the site owner’s job is to confirm it. You need more than that when your PHP branch is unsupported, when a change breaks plugins or custom code, or when there are signs the site was already compromised. This guide helps you tell which situation you are in and what the work involves.
By George Shvaya · Published
Patch, upgrade or escalate?
Find the row that matches your situation. The right-hand column is our practical recommendation; the facts behind it are in the October 2026 advisory guide.
| Your situation | Path | What to do next |
|---|---|---|
| Your host confirms in writing that the build serving your site is patched and PHP was restarted | Done for the runtime | Keep the confirmation. Test your key functions once. No outside help needed for the patch itself. |
| Your host patches PHP, but you are not sure your site was switched to the patched build | Verify | Ask the confirmation questions in the patch-status guide. Help is useful only if the answers are unclear. |
| Your site runs PHP 8.2 or newer on your own server or VPS | Patch | Install the vendor’s fixed package, restart PHP, confirm the running build, test. |
| Your site runs PHP 8.1 or older, or your host is retiring your version | Upgrade | Check for a vendor backport first. Otherwise plan a branch upgrade with compatibility testing. |
| A PHP change already broke something | Repair | Fix the failing plugin or code. Do not settle on an unpatched version; restrict access if needed while it is fixed. |
| You see unexplained files, accounts, redirects or spam, or your host reports suspicious activity | Escalate | Preserve logs, do not wipe or restore yet, and treat it as an investigation. Patch as well, but patching alone is not enough. |
When has your host already covered it?
When the host confirms three things in writing: which PHP build serves your site, that this build includes the fix, and that PHP was restarted afterward. Linux distributions received the October 2026 fixes in advance, and many managed hosts patch for their customers, so this is common. What a host usually does not do is check that your plugins, theme and custom code still work after a PHP branch change; that compatibility work is the site owner’s. The exact questions are in how to check whether a PHP security update was applied.
What should a professional PHP update include?
Whoever does the work, a well-run PHP update should give you:
- a written scope, agreed before anything changes;
- an inventory of the PHP build, SAPI, host and application components;
- a confirmed backup and a plan for what happens if the change misbehaves;
- compatibility checks proportionate to the version change;
- confirmation that the patched build is the one serving requests after a restart;
- the agreed business functions tested before and after;
- a written summary that says what was verified and what was not.
Be wary of anyone who promises a site is now “secure” or guarantees zero downtime. Neither can be honestly promised.
How do you plan a PHP update for a WooCommerce store?
Test on a copy first and change the live store in a quiet window:
- Note the PHP version in Site Health, list active plugins and the payment and shipping integrations.
- Take a fresh backup and confirm it can be restored.
- Update WooCommerce, extensions and the theme on staging, then switch staging to the target PHP.
- Run a test order end to end, check order emails, webhooks and scheduled actions such as renewals.
- Schedule the live change outside your busiest hours, repeat the checks immediately, and watch error logs for a few days.
More on the WordPress side in does updating WordPress update PHP?
What if an older application cannot upgrade yet?
Find a patched build for the branch it runs on, or limit who can reach it, while a durable fix is planned. PHP 8.1 and older get no releases from the PHP project, but there are still options:
| Option | What it means | Trade-off |
|---|---|---|
| Vendor backport | Your OS or control-panel vendor ships a fixed package for the old branch. | Lowest effort when available. Confirm the vendor actually covers these CVEs. |
| Long-term-support vendor | A commercial vendor maintains old PHP branches. | Buys time at a cost; the application still needs a plan. |
| PHP’s minimal source backports | The PHP security team published patches for 7.4, 8.0 and 8.1 for people who build PHP themselves. | Only for teams able to build and maintain PHP from source. |
| Restrict exposure | Put the application behind a VPN, IP allowlist or login at the edge, or take it offline. | Reduces risk while work continues. Not a fix. |
| Upgrade or migrate | Fix the code for a supported PHP branch, or replace the application. | The only durable answer. Scope depends on the code. |
For unpatchable internet-facing systems, the Canadian Centre for Cyber Security suggests isolating them from public networks until a fix is applied (AL26-026). Branch support dates are on php.net.
What affects the scope and cost?
A handful of facts decide most of the effort. We do not publish fixed prices, because these vary so much between sites; this is what any quote should be based on:
| Factor | Why it matters | What to have ready |
|---|---|---|
| Who controls the server | On managed hosting the host applies the patch; on a VPS someone has to do it. | Host name and plan type |
| The version gap | A same-branch patch is small; crossing branches means compatibility work. | Current PHP version, if known |
| Plugins, themes and custom code | Each component may need checking, updating or replacing. | A list of plugins, or admin access later |
| Number of sites and hosts | More sites and more hosts mean more coordination. | A rough list |
| What must keep working | Every critical function adds tests before and after. | Your must-not-break list |
| Backups and staging | Without them, preparation takes longer. | Whether you have either |
| Signs of compromise | Investigation is a separate, larger piece of work. | What you noticed and when |
How do you verify a completed PHP update?
Check the runtime and the business separately:
- The package or build serving web requests matches the vendor’s fixed version, confirmed after a PHP restart.
- The command-line version is not used as evidence for the website.
- Every function on your must-not-break list was tested after the change, and the results are written down.
- The summary says what was not covered, such as whether the site was compromised before the patch.
How can agencies coordinate many sites?
Start with one inventory, not one ticket per site. List every site with its host, PHP branch and build, who controls the server, and how important the site is to the client. Then sort: sites on unsupported branches and sites where you control the server first, managed-hosting sites where you only need written confirmation next. Track each site’s confirmation and test results in the same sheet so you can report to clients.
Scoping worksheet
Fill in what you know; “unknown” is a useful answer too. It is the same information we ask for when scoping.
| Item | What to write | Your answer |
|---|---|---|
| Websites and environments | Domains, plus any staging or internal apps | |
| Hosting | Company, plan type, who has the login | |
| Current PHP | Version shown in the control panel or Site Health; “unknown” is fine | |
| Platform | WordPress, WooCommerce, Drupal, Laravel, custom… | |
| What prompted this | Host email, Site Health warning, a breakage, a deadline | |
| What the host has confirmed | In writing, if anything | |
| Must-not-break functions | Checkout, forms, logins, bookings, integrations, scheduled jobs | |
| Backups | Where, how recent, ever restored? | |
| Change restrictions | Busy periods, approval steps, blackout dates | |
| Who approves scope and cost | Name and role | |
| What “done” looks like | For example: host confirmation, tests passed, written summary |
Compatibility testing checklist
Run the items that apply before and after the change, and keep the results:
- Home page and the most visited pages load without errors
- Contact and quote forms submit, and the emails arrive
- Login, logout and password reset work
- A test purchase completes through the payment gateway, with confirmation email
- Booking or scheduling flows complete
- Site search returns results
- File and image uploads work
- Scheduled jobs run (cron, subscription renewals, feeds)
- Integrations respond: CRM, shipping, payment webhooks, analytics
- Admin area works for editors
- Error logs show no new fatal errors; deprecation notices are recorded for later
For moves across PHP branches, see PHP version upgrades.
Common questions
Do I need to hire someone if my host already patched PHP?
Often not. If your host confirms in writing that the build serving your site includes the fix and PHP was restarted, the runtime part is done. Outside help is useful when that confirmation is unclear, when a version upgrade is needed, or when something broke.
What is the difference between a PHP patch and a PHP upgrade?
A patch moves you to a fixed build within the same branch, such as a newer 8.3 build. An upgrade moves you to a different branch, such as 8.1 to 8.3, which changes language behavior and needs compatibility testing.
Can I just roll back if the update breaks my site?
Only to another patched build. Rolling back to an unpatched version reopens the vulnerability. The safer route is to fix what broke, restricting access to the site while that happens if necessary.
How this page is written and maintained
- Facts about vulnerabilities, versions and vendor packages come from the official sources linked in the text.
- Recommendations (what to ask, what to check, in what order) are our own practical guidance, not instructions from PHP or any vendor.
- Disclosure: Webvello sells PHP update and upgrade services. Service sections are labeled “Webvello service”.
- Written by George Shvaya. Pages are re-checked by hand when an official advisory, vendor guidance or supported-version dates change. There is no automatic monitoring, so check the date at the top.