编程

FrankenPHP v1.0 发布

355 2023-12-23 01:05:00

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 二进制文件。