| Name | Modified | Size | Downloads / 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 defaultignore_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_threadsas 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
warnlevel; they're nowdebug, matching Caddy and Mercure's convention, and no longer mislabeled as "not a flusher" by @dunglas in #2589. - Build: Take the
PHP_CONFIGenvironment variable into account ingo.shby @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