CMS Upgrades in 2026: Choosing the Right PHP Version for WordPress and Drupal

Illustrated infographic summarizing: CMS Upgrades in 2026: Choosing PHP for WordPress and Drupal

By Greg Nowak. Updated 17 September 2026.

A PHP upgrade is not merely a hosting setting when your website generates leads, accepts payments, publishes important content or supports internal operations. It changes the runtime beneath the CMS, plugins, modules, custom code, scheduled tasks and deployment tools.

The goal is therefore not to select the highest number in the hosting control panel. It is to choose a supported PHP release that the complete website can run reliably, then move to it without putting important business workflows at unnecessary risk.

Choose a destination, not another temporary stop

PHP 8.1 and earlier are outside upstream support. PHP 8.2 receives critical security fixes only until 31 December 2026, making it a poor destination for work commissioned now. PHP 8.3 remains under security support through 2027. PHP 8.4 receives security coverage through 2028, while PHP 8.5 is actively supported through 2027 and receives security fixes through 2029.

That gives PHP 8.5 the longest runway, but it is not automatically suitable for every site. CMS core, extensions, Composer dependencies, custom integrations and the hosting platform all need to support it. When one component blocks the move, document that blocker and decide whether to update, replace or retire it. Do not let an abandoned plugin quietly determine the infrastructure strategy for an otherwise healthy website.

Current position Practical target Planning implication
Maintained WordPress 6.9 or 7.x PHP 8.5 Test the active theme, plugins and custom code before production
WordPress 6.7 or 6.8 PHP 8.4 as a bridge Also plan a WordPress core update rather than freezing the stack
Drupal 10 PHP 8.4 PHP 8.5 is unsupported; include the Drupal major upgrade in the roadmap
Drupal 11.1 or 11.2 PHP 8.4 Update Drupal before considering PHP 8.5
Drupal 11.3 or 11.4 PHP 8.5 candidate Verify contributed modules, Composer packages and hosting support
Drupal 12 migration PHP 8.5 Check database and platform requirements as part of the same project
A 2026 planning matrix. The final decision still depends on the individual site and its dependencies.

WordPress and Drupal require different decisions

Current WordPress guidance lists PHP 8.4 as compatible with WordPress 6.7 onward and PHP 8.5 as compatible with WordPress 6.9 onward. That describes WordPress core, not every plugin or theme installed around it. A maintained WordPress 6.9 or 7.x site can reasonably target PHP 8.5, provided the complete extension stack passes staging tests.

WordPress also retains compatibility with some PHP versions that PHP itself no longer maintains. Treat that broad compatibility as a migration aid, not a production recommendation. If the site is still on an obsolete runtime, the fact that WordPress starts successfully does not make the runtime secure or operationally sensible.

Drupal’s combinations are narrower. Drupal 10 supports PHP up to 8.4, while PHP 8.5 support begins with Drupal 11.3. Drupal 12 requires PHP 8.5 and raises several database minimums, including MariaDB 10.11 and PostgreSQL 18. A Drupal 12 move is consequently a platform project: PHP, database, Composer dependencies and hosting capabilities must be assessed together.

Audit the environment that actually runs the site

Production, staging, command-line tools and the web server can use different PHP binaries or configuration files. Capture evidence from each environment before approving a target. These commands provide a useful first pass:

php -v
php -m | egrep 'curl|dom|gd|imagick|mbstring|openssl|pdo|xml|zip'
php -i | grep 'Loaded Configuration File'

wp core version
wp plugin list --status=active --fields=name,version,update,status
wp theme list
wp cron event list

drush status
composer outdated --direct
composer prohibits php 8.4 --tree
composer prohibits php 8.5 --tree
composer check-platform-reqs

composer prohibits reveals which dependency constraints block a target version. It does not justify forcing an update or ignoring platform requirements. Review the package, available releases and application compatibility. Composer’s check-platform-reqs command should also be run in the real deployment environment because it checks the installed PHP runtime and extensions rather than relying only on configured platform assumptions.

For WordPress, inventory must-use plugins, the active theme, page builders, forms, ecommerce components and custom integrations. For Drupal, include contributed and custom modules, Composer constraints, required extensions, database versions and deprecation findings. Validate any web-server configuration changes with nginx -t or apachectl -t before reloading services.

Test the journeys that matter to the business

A working homepage is weak evidence of a successful upgrade, especially when a cache can continue serving an old response. Staging should resemble production in PHP extensions, configuration, database shape and deployment method. Test both cached and uncached requests, then exercise the workflows whose failure would create lost enquiries, revenue or manual recovery work:

  • Contact forms, confirmations and outbound email
  • Login, password reset and user permissions
  • Checkout, payment callbacks and subscription events
  • Search, redirects, sitemaps and structured data
  • Scheduled publishing, imports, exports, queues and cron jobs
  • Media uploads, image processing and document generation
  • Editorial, moderation and approval workflows

Inspect application, PHP-FPM and web-server logs while testing. Warnings and deprecations may expose code that still appears to work but will become a blocker during the next upgrade.

Make the production change reversible

Before deployment, agree on the release window, responsibilities, acceptance checks and rollback trigger. Keep a verified backup or snapshot, the previous runtime configuration, the package lock file and a deployable copy of the earlier application release. A rollback plan that has never been checked is only an intention.

After release, repeat the critical checks in production, inspect queues and scheduled jobs, and monitor logs. The most useful management deliverable is a short decision record covering the current stack, selected target, known blockers, remediation owners, test scope, deployment sequence and rollback method. It gives the owner, agency, developer and hosting provider one shared plan.

Need someone to coordinate the upgrade?

Greg can assess the dependencies, turn technical findings into a staged plan and coordinate hosting, development and acceptance testing around the workflows that matter to the business. Talk with Greg about planning your CMS and PHP upgrade.

Related on GrN.dk

Need help with this kind of work?

Plan your CMS upgrade with Greg Get in touch with Greg.

Sources

Latest articles

NGINX 1.31.5 can route on JSON body values. Here’s how to weigh the performance, security, and operational trade-offs before using it.

OpenAI can keep agent sessions running, but reliable workflows still depend on clear failure states, safe retries, validation, limits and human fallback.

AI can identify termination deadlines and price adjustments in supplier contracts, route uncertain findings for approval and create the right reminders.

Why a DNS record can exist in a dashboard yet fail publicly—and how to trace zone cuts, verify glue, and fix the right side of a live delegation.

An Apache version below 2.4.68 may still be patched. Package provenance, vendor advisories, module checks and runtime evidence reveal the real position.

PHP 8.2 security support ends on December 31, 2026. Here is how to audit, test, and migrate a mixed CMS estate without rushing production changes.

How Danish businesses can automate Gmail and Microsoft 365 with rapid sorting, limited permissions and human approval.

When WordPress jobs run late, check WP-Cron and queue capacity first. Diagnose triggers, handlers, and Action Scheduler without guesswork.

WordPress 7.1 makes speculative loading configurable. Here’s how to spot overlapping rules and test speed gains without adding hidden costs.

Multiple records for the same customer in HubSpot? Learn how CVR number matching, AI suggestions and human approval can help you clean up duplicates while keeping track of fields, associations and customer history.