Safeguard
Security Guides•

Is PHP 8.1 end of life, and when does PHP 8.2 security support end?

PHP 8.1 is no longer on php.net's supported list, and 8.2 security support ends 31 December 2026. How to record both in your dependency inventory.

Safeguard Security Team
4 min read

PHP 8.1 no longer appears on php.net's list of supported versions, so treat it as end of life. PHP 8.2 receives security fixes only, until 31 December 2026, which is about ten weeks from this review. Record both now and plan the move to 8.3 or newer.

What php.net lists today

The php.net supported versions page, viewed on 19 October 2026, lists branches 8.2 through 8.5. For each it shows an active support date and a security support date:

BranchActive support untilSecurity support until
8.231 December 202431 December 2026
8.331 December 202531 December 2027
8.431 December 202631 December 2028
8.531 December 202731 December 2029

PHP 8.1 is absent from that table. A widely used lifecycle tracker records its security support as ending on 31 December 2025, which matches what the official page implies.

The page defines the two phases. Active support means reported bugs and security issues are fixed and regular point releases ship. Security fixes only means critical security issues are handled, with releases made as needed. End of life means users should upgrade.

Why PHP version matters beyond the language

Your framework sets a floor. Laravel's release notes, for example, list the PHP versions each Laravel major supports, and the newest listed release there needs PHP 8.3 or higher. If your framework version pins you to an old PHP, the framework upgrade and the runtime upgrade are one project. For the framework side, see dependency audit checklist for Rails and Laravel teams for the wider audit.

Where PHP 8.1 hides

  • Shared hosting and managed platforms where the PHP version is a dashboard setting.
  • Docker images pinned to an old tag.
  • Composer files with a platform setting that forces an older version in resolution.
  • CI images used only for tests, which can differ from production.

The composer.json require field for php and the config platform block both tell you what the project claims to support. They do not tell you what runs in production, so check both the declared and the running version. Declared, built and running explains why those three can disagree.

A 10 week plan for PHP 8.2

  1. Week 1: list every service on 8.2 and every one still on 8.1 or older.
  2. Weeks 2 and 3: run your test suite on 8.3 in CI as a non-blocking job.
  3. Weeks 4 to 6: fix deprecations, upgrade the framework if it forces the issue.
  4. Weeks 7 to 9: roll out service by service, lowest risk first.
  5. Week 10: confirm nothing is left on 8.2, and record exceptions with an owner and date.

If a service cannot move in time, write an exception rather than leaving the gap silent. A vulnerability exception for end-of-life software shows the fields.

Try it yourself

Click through it at your own pace, or open it full screen. Notice how each component carries a version, which is the field a support date attaches to.

Where Safeguard fits

Safeguard's SBOM and dependency scanning lists your Composer packages and their versions, and asset discovery helps find the services running them. The free scan at gold.safeguard.sh/scan is a quick way to see your current list.

Quick check

Is PHP 8.1 safe to keep running?

It no longer gets upstream fixes. Keep it only with a dated exception, extra isolation, and a plan to move.

Does security fixes only mean I can wait?

You can wait until the stated end date, not past it. Use the time to migrate.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.