Download Latest Version frankenphp-windows-x86_64.zip (59.4 MB) Google Add to Preferred Sources
Home / v1.12.7
Name Modified Size InfoDownloads / Week
Parent folder
frankenphp-linux-x86_64 2026-08-07 173.5 MB
frankenphp-windows-x86_64.zip 2026-08-07 59.4 MB
frankenphp-mac-x86_64 2026-08-06 188.4 MB
frankenphp-linux-x86_64-debug 2026-08-06 225.0 MB
frankenphp-linux-x86_64-mimalloc 2026-08-06 173.6 MB
frankenphp-linux-x86_64-gnu 2026-08-06 167.8 MB
frankenphp-linux-aarch64-gnu 2026-08-06 161.1 MB
frankenphp-linux-aarch64 2026-08-06 164.9 MB
frankenphp-mac-arm64 2026-08-06 178.3 MB
README.md 2026-08-06 2.2 kB
v1.12.7 source code.tar.gz 2026-08-06 3.8 MB
v1.12.7 source code.zip 2026-08-06 4.0 MB
Totals: 12 Items   1.5 GB 12

FrankenPHP 1.12.7 fixes a bug where output written after fastcgi_finish_request()/frankenphp_finish_request() was silently discarded in classic (non-worker) mode: with the default ignore_user_abort, echoing anything after finishing the request incorrectly marked the connection as aborted and bailed out mid-script. It also quiets noisy debug-level logging for routine client disconnects and fixes an incorrect thread-count metric.

🐛 Bug Fixes

  • Classic mode: Fix output written after fastcgi_finish_request()/frankenphp_finish_request() being silently discarded. With the default ignore_user_abort, echoing anything after finishing the request incorrectly marked the connection as aborted and bailed out mid-script by @dunglas in #2569. Fixes #2548.
  • Metrics: Report frankenphp_total_threads as a gauge instead of accumulating it, so the metric reflects the current thread count instead of growing unbounded by @ousamabenyounes in #2550. Fixes #2481.
  • Opcache: Remove the opcache-invalidation restart hook again; restarting on every opcache reset could cascade into recursive restarts for frameworks that invalidate the cache heavily by @AlliBalliBaba in #2564.
  • Logging: Stop logging routine client-disconnect write/flush errors at warn level; they're now debug, matching Caddy and Mercure's convention, and no longer mislabeled as "not a flusher" by @dunglas in #2589.
  • Build: Take the PHP_CONFIG environment variable into account in go.sh by @henderkes in #2557.

📖 Documentation

  • Explain why the post-force-kill reboot wait must stay unbounded by @dunglas in #2577.

💖 New Contributors

  • @ousamabenyounes made their first contribution in #2550

Full Changelog: https://github.com/php/frankenphp/compare/v1.12.6...v1.12.7

Source: README.md, updated 2026-08-06