Drop PHP 7.4, 8.0, and 8.1 support - #699
Merged
jaydrogers merged 3 commits intoSep 9, 2026
Merged
Conversation
- Added a section on dropped PHP versions in the major version migrations guide, detailing the last built dates and reasons for PHP 8.1, 8.0, and 7.4. - Updated the Docker tags documentation to reflect changes in supported OS versions and PHP patch versions. - Modified the assemble-docker-tags script to align with the new PHP versioning scheme. - Revised the PHP versions base config to remove deprecated versions and adjust supported operating systems. - Updated development scripts to reflect the new PHP versioning and OS options. - Enhanced the generate-matrix script to ensure compatibility with the updated PHP versions and OS configurations. - Adjusted the get-nginx-versions and get-php-versions scripts to accommodate the removal of older OS versions.
jaydrogers
changed the base branch from
main
to
release/webserver-improvements-and-fixes
September 9, 2026 14:38
Deploying serversideup-php with
|
| Latest commit: |
566f90e
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ee2ffa4e.serversideup-php.pages.dev |
| Branch Preview URL: | https://drop-7-4-and-8-0.serversideup-php.pages.dev |
jaydrogers
merged commit Sep 9, 2026
a8e29aa
into
release/webserver-improvements-and-fixes
138 of 139 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why we created this PR
Debian stopped signing packages for Debian 11 (Bullseye). Its final
bullseye-securityrelease file expired on 2026-09-07, and every Bullseye build in our matrix now fails (full run →):This isn't us choosing to stop. With no signed repository, there's no trusted source to pull patched packages from, so a patched image can't be built at all.
PHP 7.4 and 8.0 only ever shipped on Bullseye and Alpine 3.16, so they go with it. PHP 8.1 has been unbuildable since 2025-12-16, when upstream removed the
8.1branch — we're cleaning it up here so our config matches reality.Your existing tags still work
Every
7.4,8.0, and8.1tag stays pullable on Docker Hub and GitHub Packages, frozen at its last successful build. What they no longer get is security updates — for PHP or for the OS underneath.Why we updated SECURITY.md
Our old policy said we publish EOL images "so legacy applications have a path into containers," but never said where that ends. It reads like we'd rebuild Bullseye forever.
The rule is now explicit: we publish images on an EOL base only for as long as that distribution still serves a signed package repository. Once signing stops, we stop rebuilding and the tags freeze.
We also added EOL versions and the legacy-modernization path — a table of what stopped, when, and why, so nobody has to dig through a workflow run to find out.
What this PR does
Dropped
bookworm,trixie,alpine3.23, andalpine3.24Docs
SECURITY.mdand added the EOL versions tableBuild scripts
assemble-docker-tags.sh,generate-matrix.sh,get-php-versions.sh, andget-nginx-versions.shfor the new matrixgenerate-matrix.shnow tolerates minor versions with nobase_osorpatch_versions, so a version can sit in config before it's buildableGroundwork for PHP 8.6
docker-php-serversideup-install-php-extensions, which lets a build swap one extension for a different source (likeredis=phpredis/phpredis@develop). Declared per minor version inphp-versions-base-config.yml, passed to the build asPHP_EXTENSION_OVERRIDESphp:8.6-rcno longer shipspecl/pearandinstall-php-extensionsdoesn't support 8.6 yet, so no PECL extension installs (Add PHP 8.6-rc support #698)If you're on 7.4, 8.0, or 8.1
Move to PHP 8.2 or newer on
bookworm,trixie,alpine3.23, oralpine3.24.