Образы для сайтов: PHP 7.2 и 7.4–8.2 имеют fpm, dev, ssh, with-nginx,
with-nginx-ssh; PHP 5.6 имеет fpm, dev и with-nginx.
CI проверяет PHP 5.6.40 / Stretch, 7.2.34 / Buster, 7.4.33 / Bullseye,
8.0.30 / Bullseye, 8.1.34 / Bookworm и 8.2.35 / Bookworm на linux/amd64.
Набор расширений сохранён; версии PECL закреплены в отдельных Dockerfile, SHA256 архивов — в
scripts/pecl-sha256.txt и Dockerfile PHP 5.6.
Веткам 7.2 и 7.4–8.2 PostgreSQL и nginx предоставляет подписанный репозиторий Debian.
Для PHP 5.6 nginx собирается отдельно, см. ниже.
versions/<ветка>/Dockerfile явно задаёт базовый образ, патч и расширения своей
ветки; build context всегда корень репозитория. Общие скрипты в scripts/
выполняют одинаковые операции и не выбирают поведение по PHP_VERSION.
Общие конфиги остаются в корне и nginx/. Отличающиеся конфиги и entrypoint
PHP 5.6 сохранены в versions/5.6/: объединение не меняет обработку hook,
журналов и жизненного цикла процессов остальных образов.
PHP 7.4, 8.0 и 8.1 пересобираются из исходников, вложенных в официальный образ,
с исходными параметрами php-config --configure-options, путями и ABI.
scripts/rebuild-php.sh проверяет SHA256 официальных патчей перед применением без fuzz:
| PHP | Официальный commit PHP | SHA256 патча |
|---|---|---|
| 7.4.33 | 712e60f9edfd03f0960fc4fc3c2c375f42b90aa2 |
5fe57ca6ee96d59b36c6e0ca842843c50884f177bef1e85234cf669b577f5e48 |
| 8.0.30 | 82f8f31b16a035c1b67cc253e79f7cc288f4cc20 |
534478c973cef6f493605b7af907f639a364912ee92c24598ddae44c3bc72d1c |
| 8.1.34 | 1d7dec178a094e6e75b229ce22754045f8c6070a |
c85ad0fddcbff7f2318617eeaa54d271135463b5bf70a01228447e3ed78de96e |
Источник: https://github.com/php/php-src/commit/<commit>.patch.
Upstream называет эти изменения минимальной mitigation для EOL-веток
(CVE-2026-109618 и CVE-2026-109619). Они отключают session upload progress
и завершают процесс при исчерпании памяти без выполнения пользовательских
обработчиков завершения. Это изменение поведения нужно учитывать приложениям.
PHP 8.2.35 используется из официального образа без локального патча.
PHP 5.6/7.2/7.4/8.0/8.1 и Debian Stretch/Buster/Bullseye завершили поддержку. Перенос двух исправлений не означает наличия всех исправлений после EOL, полноценной поддержки или проверки совместимости сайтов. Bullseye security доступен через архив; проверка подписей APT сохранена.
docker build --platform linux/amd64 -f versions/7.4/Dockerfile \
--target fpm -t php-verify:fpm .
python3 tests/verify.py php-verify:fpm fpmВ сборках 7.4–8.2 выполняются upstream PHPT tests/basic/001.phpt и
ext/session/tests/session_basic1.phpt: это базовые проверки CLI и session,
не регрессии конкретных CVE. Официальные EOL-патчи не добавляют PHPT.
tests/verify.py проверяет реальный CLI, обязательные расширения, конфигурацию
и запрос FastCGI к FPM, наличие инструментов соответствующего варианта,
а для EOL-веток — завершение при OOM без shutdown callback.
Контейнеры ограничены по памяти и числу процессов; OOM запускается без сети.
Это не полная проверка эксплуатации CVE и не проверка приложений.
PR и ручной запуск workflow_dispatch только собирают и проверяют локальные образы.
Push запускает матрицу только для master, чтобы не дублировать проверки PR.
Semantic release разрешён только после успешной матрицы на push master;
публикация образов запускается отдельным событием release: released.
sitkoru/semantic-release-action закреплён на коммите с Node.js 24;
он требует Actions Runner v2.327.1 или новее. Изменение release-action проверено
статически; настоящий выпуск и совместимость npm-пакетов выполнением не проверялись.
Теги -nginx-ssh теперь соответствуют with-nginx-ssh и не перезаписывают -nginx.
Перенесён из sitkoru/docker-php5, commit 65282c4, с отдельными настройками
FPM/dev. Источник и SHA256 трёх Debian backport-патчей описаны в
versions/5.6/patches/README.md.
Применяются CVE-2026-109618/CVE-2026-109619 и связанный multipart-лимит
CVE-2023-0662. Обычные загрузки файлов сохраняются, session upload progress
отключается, OOM завершает процесс без пользовательского shutdown callback.
with-nginx сохраняет интерфейс ghcr.io/sitkoru/php:5.6-nginx: порт 80,
PHP-FPM 9000, APP_BEFORE_START_SCRIPT, прежние пути конфигов nginx,
/fpm-status-page, mysql, exif, gmp, msmtp и пользователя www-data.
Nginx 1.30.6 собирается с отдельным статическим OpenSSL 3.5.9, не меняя SSL ABI
PHP. URL и SHA256 закреплены в versions/5.6/nginx/build.sh.
Dev сохраняет Xdebug 2.5.5 и совместимый Composer 2.2 LTS.
docker build --platform linux/amd64 -f versions/5.6/Dockerfile --target verify .
docker build --platform linux/amd64 -f versions/5.6/Dockerfile --target regression .
docker build --platform linux/amd64 -f versions/5.6/Dockerfile \
--target with-nginx -t php5-check:nginx .Проверки versions/5.6/tests запускают настоящее ядро, модули, GD/intl,
OOM, FastCGI-запрос, четыре upstream PHPT multipart/session и собственный
PHPT отключения upload progress с успешной загрузкой файла. Проверка nginx
проходит через HTTP в PHP, выполняет фиктивный startup hook и проверяет
access/error в docker logs. Приложения сайтов и внешние БД не участвуют.
| Dockerfile и target | Теги |
|---|---|
7.2 и 7.4–8.2, fpm |
ghcr.io/sitkoru/php:<полная версия> и :<major.minor> |
7.2 и 7.4–8.2, dev / ssh / with-nginx / with-nginx-ssh |
Те же версии с суффиксом -dev / -ssh / -nginx / -nginx-ssh |
5.6, fpm |
ghcr.io/sitkoru/php5:latest, :sha-<commit8> |
5.6, dev |
ghcr.io/sitkoru/php5-dev:latest, :sha-<commit8> |
5.6, with-nginx |
ghcr.io/sitkoru/php:5.6-nginx, :5.6.40-nginx |
Исторические теги php5/php5-dev вида vX.Y.Z, vX.Y, vX и edge
не переназначаются под независимый цикл релизов php-docker.
Перед первым выпуском PHP5 из этого репозитория нужно отдельно переключить
издателя: старый docker-php5 пока сохраняет собственные workflows публикации.
Иначе два репозитория смогут перезаписывать latest. Слияние, переключение
издателя, выпуск и обновление production в эту проверочную работу не входят.
PHP 7.2.34 сохраняет официальный Buster, исходные параметры сборки и прежний
набор расширений, включая ftp, memcache, memcached, redis; grpc и
mongodb не добавлены. Отличающиеся параметры GD вынесены в скрипт версии.
Подписанные репозитории Buster перенесены в Debian archive.
Четыре закреплённых Debian backport-патча и их зависимости описаны в versions/7.2/patches/README.md. Они дают ту же минимальную mitigation CVE-2026-109618/CVE-2026-109619, что PHP 7.4: немедленное завершение при OOM, отключение session upload progress и ограничение multipart. Это не полная поддержка EOL-версии.
docker build --platform linux/amd64 -f versions/7.2/Dockerfile --target fpm -t php72-local:fpm .
python3 tests/verify.py php72-local:fpm fpm
docker build --platform linux/amd64 -f versions/7.2/Dockerfile --target regression .regression переиспользует четыре upstream PHPT multipart/session и собственный
PHPT отключения upload progress с успешной обычной загрузкой из versions/5.6/tests.
Upstream-патч 7.2 не добавляет PHPT; эти четыре теста проверяют сохранение
обычного поведения, а не эксплуатацию CVE. tests/verify.py отдельно проверяет
OOM без пользовательского обработчика завершения, CLI, расширения и FastCGI.