FrankenPHP 是一个用 Go 编写并基于 Caddy Web做事器构建的 PHP 运用做事器。
Caddy 创建者 Matt Holt 表示,它可使 PHP 运用程序的性能提高一倍,并将开拓职员和 DevOps 的事情量减少一半;而 Caddy 刚刚更新到 2.8 版本,现在后端已经实验性地支持 HTTP/3。
FrankenPHP 的作者是 Kevin Dunglas,他是 PHP 和 Go 的核心贡献者,也是盛行的 PHP 网络框架 Symfony 的核心掩护者。

Dunglas 结合自己在不同领域的知识,创建了 FrankenPHP,该版本于 2022 年 11 月在 SymfonyCon 上进行了预览,并于 2023 年 12 月发布了 1.0 版本。
FrankenPHP 专为容器支配而设计,包含 Caddy,后者也是用 Go 编写的,因此单个做事即可为 PHP 运用程序供应支持。FrankenPHP 在 MIT 容许下开源,代码位于 GitHub 上。
https://github.com/dunglas/frankenphp
这样将 PHP 运行时和 Web 做事器打包在一起可以大大提高性能。
Dunglas 供应的一项基准测试显示,Hello World Symfony 运用程序的 Web 要求均匀须要 2.53 毫秒才能完成,而常日用于优化传统 Web 做事器性能的 PHP-FPM(FastCGI 进程管理器)则须要 9.45 毫秒。
FrankenPHP 在 Docker 容器中运行 API 平台
FrankenPHP 的其他功能包括自动天生 HTTPS 证书(得益于 Caddy 对 Let's Encrypt 或 ZeroSSL 的支持)、对 PHP 扩展(包括 OPCache 和 XDebug)的原生支持以及将运用程序保存在内存中的事情模式,以实现更快的相应。还支持构造化日志记录、Prometheus 指标和跟踪以及优雅重新加载(动态更新运用程序)。
预构建的容器适用于常用的 PHP 运用程序,包括 WordPress、Symfony、Drupal、Joomla、Laravel 和 API 平台,末了一个也是由 Dunglas 创建的。
Holt 是一名爱好者,他在在 Hacker News 上说道:“这有可能改变万维网(我非常谨慎地利用这个词,由于 PHP 为环球绝大多数互联网供应支持……网站性能险些翻倍,而开拓职员/devops 职员的事情量却减少一半,这并不罕见”。
不幸的是事情没那么大略。PHP 被广泛利用的缘故原由很大一部分是由于 WordPress,而 Dunglas表示“与 Laravel 和 Symfony 不同,WordPress 不支持 FrankenPHP 的事情模式(目前还不支持),因此在性能方面没有太多好处(除了利用 103 Early Hints 预加载资产的能力,这可以将页面加载的延迟降落 30%)。”
在 Caddy 方面,据该团队称, 2.8 版是“迄今为止最大的 Caddy 更新之一”,个中包含数百项改进。个中包括对代理后真个快速 HTTP/3 协议的实验性支持、更新的自动证书更新(包括 ARI(ACME 更新信息)支持)以及性能改进(包括现在默认压缩更多媒体类型)。
Caddy 受到一部分用户的高度评价。个中一位用户表示:“它是一款出色的反向代理,并且凭债主动证书和 HTTP/3 支持首创了先河。”
标签:支持FrankenPHP