FrankenPHP v1.0 发布
FrankenPHP 本周刚刚达成了一个重要的里程碑,发布了 v1.0 版本。FrankenPHP 是一个用 Go 编写的现代 PHP 应用程序服务器,只需一个命令就可以为您提供一个生产级 PHP 服务器。
它提供了对 Symphony, Laravel, WordPress 等的原生支持:
- 生产级 PHP 服务器,由 Caddy 驱动
- 部署简单——将 PHP 应用打包为独立的、可自行执行的二进制文件
- 只运行一项服务——不再有单独的 PHP-FPM 和 Nginx 进程
- 可扩展——兼容 PHP 8.2+、大多数 PHP 扩展和所有 Caddy 模块
- 工作模式——启动应用程序一次并将其保存在内存中
- 作为 JavaScript 事件发送到浏览器的实时事件
- Zstandard 和 Gzip 压缩
- 结构化日志记录
- 使用内置的 Prometheus 指标监测 Caddy
- 对 HTTPS、HTTP/2 和 HTTP/3 的原生支持
- 自动 HTTPS 证书和续订
- 优雅发布——在零停机的情况下部署应用程序
- 支持早期提示
Laravel Octane 中 是否支持 FrakenPHP?目前还没有,但有一个活动的 pull 请求将对 FrankenPHP 的支持添加到 Laravel Octane。
支持哪些 PHP 模块?我试着寻找一个明确的列表,但根据我所收集到的最流行的 PHP 扩展应该可以工作。该文档确认 OPcache 和 Debug 是由 FrankenPHP 原生支持的。
您可以在 frankenhp.dev 上开始使用 FrankenPHP,并浏览文档以了解工作模式、Docker 映像和创建应用程序的静态二进制文件。
如果您想在您的应用中试用,最简单的尝试方法是运行以下 Docker 命令:
docker run -v $PWD:/app/public \
-p 80:80 -p 443:443 \
dunglas/frankenphp
对于 Laravel,你需要运行如下 Docker 命令 ( FrankenPHP Laravel 文档有完整的安装说明):
docker run -p 443:443 -v $PWD:/app dunglas/frankenphp
如果你不想用 Docke,你也可以在 macOS 和 Linux 运行 frankenphp 二进制文件。