End-of-Life PHP: What It Costs to Stay on Unsupported Versions

10 min read 1,879 words
End-of-Life PHP: What It Costs to Stay on Unsupported Versions featured image

When a PHP version reaches end-of-life, the development group stops releasing security patches entirely. Applications running on those versions continue to function, but every newly discovered vulnerability remains unfixed indefinitely. As time passes, the risk accumulates. The older the version, the larger the catalogue of known weaknesses that attackers can exploit using publicly available exploit code.

PHP versions typically receive active support for approximately three years, followed by one year of security-only updates. Once both phases end, no patches are released regardless of how critical a newly discovered vulnerability might be. This is not a soft recommendation — it is a hard cutoff that affects the security posture of every application running on that version.

Why PHP End-of-Life Dates Matter for Your Business

The PHP supported versions page clearly marks each release stage. A version marked as receiving security fixes only is in its final support phase. A version with no status marker is end-of-life and receives no updates of any kind. Understanding these stages helps you plan upgrades before your applications become vulnerable.

PHP 7.4 reached end-of-life in November 2022. Any business still running PHP 7.4 in production has been operating an unsupported version for several years. The vulnerabilities discovered and documented since that date represent a significant and unmanaged risk. PHP 8.0 followed in November 2023, and PHP 8.1 is currently in its security-only phase, with PHP 8.2 and 8.3 receiving active support.

When evaluating how urgently an upgrade is needed, the end-of-life date matters more than the version number. A version that reached end-of-life recently may still be relatively safe to run temporarily while you plan an upgrade. A version that has been end-of-life for years has accumulated a substantial body of documented vulnerabilities that are well-understood by potential attackers.

What Unsupported PHP Actually Costs

The cost of staying on an unsupported PHP version is not immediately visible. The system works. The site loads. Nothing breaks in an obvious way. The real cost appears when a vulnerability is found in that version and your application is exposed with no patch available from the PHP group.

Emergency upgrade costs are substantially higher than planned upgrades. An emergency migration under time pressure, potentially with a server already compromised or a breach investigation underway, carries a premium that can be five to ten times the cost of a planned upgrade completed on a timeline that suits your business operations.

The financial exposure extends beyond the immediate upgrade cost. Incident response teams, forensic analysis, regulatory notifications, potential fines, and reputational damage can far exceed what a planned upgrade would have cost. These costs are rarely predictable and often uninsured.

Regulatory and Compliance Risks

Regulatory exposure is a growing concern for businesses handling customer data. PCI DSS compliance for payment processing explicitly requires maintaining software that is currently supported by its vendor. Using an unsupported PHP version for a payment-processing application can put your PCI compliance status at risk during a required audit.

Even for businesses that are not directly subject to PCI DSS, using demonstrably insecure software in a data breach can be treated as negligence. Data protection regulations place responsibility on businesses to implement reasonable security measures. Running known-vulnerable software with unpatched vulnerabilities can complicate your position significantly if a breach occurs.

It is worth reviewing your current data handling obligations and checking whether your existing PHP version creates compliance gaps that should be addressed.

Hosting Provider Constraints and Forced Migration

Major hosting providers phase out older PHP versions as they become unsupported. This is a practical necessity — running unsupported PHP versions on shared infrastructure creates risk for all customers on that server. When a hosting provider drops support for PHP 7.4 or PHP 8.0, businesses that have not upgraded are forced to migrate on the provider's timeline rather than their own.

Forced migrations under provider deadlines rarely allow adequate time for proper testing. Applications that might work perfectly after careful testing can fail unexpectedly when pushed to production without sufficient verification. Planning your own upgrade gives you control over timing, testing, and rollback procedures.

If your hosting provider has announced an upcoming PHP version cutoff, it is worth acting before that deadline rather than waiting for an enforced migration.

Reading the PHP Version Roadmap

The PHP supported versions page shows the current status of all PHP major versions. Before planning any upgrade work, check this page to understand where your current version sits in its lifecycle.

PHP follows a predictable release cycle. Each major version receives active development and security support for approximately two years after its initial release, followed by one year of security-only support. After that period, the version reaches end-of-life with no further updates.

When evaluating how urgently an upgrade is needed, the release date matters more than the version number. PHP 7.4 reached end-of-life in November 2022. Any business still running PHP 7.4 in production has been running an unsupported version for over three years. The vulnerabilities accumulated in that time represent a significant and unmanaged risk.

Staying current with PHP versions is not just about accessing new features. It is primarily about maintaining access to security patches and keeping your application's attack surface manageable.

Planning the PHP Upgrade

Upgrade costs depend on how much custom code your application has and how strictly it adheres to current PHP practices. Applications built on modern frameworks with active maintenance typically upgrade with minimal changes. Applications with years of accumulated technical debt, deprecated function calls, and unmaintained dependencies require considerably more effort.

The upgrade path usually runs through each intermediate PHP version rather than jumping directly to the latest. PHP 7.4 to PHP 8.3 requires testing at each intermediate version to catch deprecation warnings that become errors in the next major release. Skipping versions can mask compatibility issues that are easier to resolve when addressed incrementally.

Before upgrading, run a static analysis scan against your codebase to identify deprecated function calls, removed extensions, and incompatibility issues. This gives you a realistic estimate of the work required before touching a production environment.

A thorough upgrade checklist helps you work through the process systematically. Identifying deprecated functions, testing in a staging environment, reviewing dependency compatibility, and planning a rollback procedure are all steps that reduce risk.

Common Mistakes During PHP Upgrades

Skipping intermediate versions is one of the most common mistakes. Jumping from PHP 7.4 directly to PHP 8.3, for example, can surface dozens of compatibility issues at once. Testing at each major version increment makes problems easier to isolate and resolve.

Insufficient testing in staging environments causes many upgrade-related incidents. Production applications often have configuration differences from development setups. Dependencies that work in one environment may fail in another. Adequate staging environment parity with production reduces surprises during the actual upgrade.

Ignoring deprecation warnings before the upgrade is another frequent issue. Deprecation warnings in PHP 7.x often become errors in PHP 8.x. Addressing these warnings proactively, before the upgrade, reduces the number of blockers you encounter.

Not checking dependency compatibility catches many businesses off guard. Your application code might be compatible with a newer PHP version, but a dependency you rely on may not yet support it. Checking dependency documentation and release notes before beginning the upgrade prevents wasted effort.

The Real Cost Comparison

PHP security hardening for a well-maintained application takes a few days of developer time and follows a predictable timeline. An emergency upgrade following a security incident takes the same developer time plus incident response costs, potential regulatory costs, potential breach notification costs, and reputational damage that does not appear on any invoice.

The question is not whether your business can afford to upgrade. The question is whether your business can afford the much higher cost of not upgrading when a vulnerability affects your unsupported PHP version.

Planned upgrades allow proper testing, documented rollback procedures, and maintenance windows that suit your business operations. Emergency upgrades rarely allow any of these luxuries. The cost difference between the two scenarios often exceeds the cost of staying current by a significant margin.

When to Bring in Technical Help

If your application relies on custom code, unmaintained plugins, or older framework versions, the upgrade complexity increases. An external review can help you understand the scope of work before committing to a timeline.

Businesses running older PHP versions with known security concerns may benefit from a practical security review to understand their current exposure and prioritise remediation steps.

If you want a practical review of your setup, you can get in touch with details of your current PHP version, hosting environment, and any dependencies that may complicate an upgrade.

Related practical reading

These related guides can help you connect this topic with the wider website, server, security, and support decisions around it.

Frequently Asked Questions

How do I check which PHP version my website is currently running?
Most hosting control panels display the PHP version for your domain. You can also create a simple PHP file containing <?php echo phpversion(); ?>, upload it to your server, and access it through a browser to see the current version. Remember to remove the file after checking, as it exposes version information publicly.
Can I run different PHP versions for different websites on the same server?
Many hosting providers and server configurations support running different PHP versions per domain or per directory. This can be useful during staged migrations where one application is upgraded while another is still being prepared. However, managing multiple PHP versions on a single server adds administrative complexity and should be considered a temporary arrangement.
What happens if my hosting provider forces a PHP version upgrade?
Forced upgrades from hosting providers typically give limited notice and may push your application to a newer PHP version without warning. If your application is not compatible with the new version, you may experience errors, blank pages, or broken functionality immediately. Having a tested upgrade plan ready before your provider's cutoff date prevents this situation.
How long does a typical PHP upgrade take for a small business website?
For a straightforward website using popular CMS platforms with well-maintained themes and plugins, the upgrade process can often be completed within a few hours of testing and deployment. Applications with custom code, legacy dependencies, or significant technical debt may require several days of assessment and testing before a safe upgrade is possible.
Is it safe to skip PHP versions during the upgrade?
Skipping PHP versions during an upgrade is generally not recommended. Each major PHP version may remove functions, change default behaviours, or introduce breaking changes that are easier to address incrementally. Testing at each intermediate version helps identify issues gradually rather than all at once.
What should I do before starting a PHP upgrade?
Back up your entire application, including the database, before beginning any upgrade. Test the upgrade in a staging environment that mirrors your production setup as closely as possible. Review your dependencies for compatibility with the target PHP version. Document any custom code that may need updating. Having a verified rollback plan ensures you can restore service quickly if the upgrade causes unexpected issues.