Repolode
php

php/frankenphp

基于 Caddy 构建的现代 PHP 应用服务器,支持 worker 模式、Early Hints 与 HTTP/3。

Star
11,441
Fork
498
未关闭 Issue
117
最近提交
9小时前

这是什么?

FrankenPHP 是用 Go 编写、基于 Caddy Web 服务器构建的 PHP 应用服务器,可运行任意 PHP 应用。它提供 worker 模式(应用在请求之间保持常驻内存),并支持 Early Hints、通过 Mercure 实现的实时通信以及热重载,同时内置自动 HTTPS、HTTP/2 和 HTTP/3。

项目提供适用于 Linux、macOS(Apple Silicon)和 Windows 的独立二进制文件,也提供 rpm、deb、apk 包、Homebrew 和 Docker 镜像。Laravel 与 Symfony 都有官方的 worker 模式集成。它还可以作为 Go 库,嵌入到基于 net/http 的应用中。

通过 `frankenphp php-server` 可以直接提供目录内容的服务,`frankenphp php-cli` 则用于运行命令行脚本。项目还支持构建独立的自执行 PHP 应用和静态二进制文件,并允许开发者用 Go 编写 PHP 扩展。

核心功能

  • 01worker 模式可让应用在请求之间保持加载状态。
  • 02支持 Early Hints(103 状态码)、HTTP/2 和 HTTP/3。
  • 03内置自动 HTTPS,并通过 Mercure 提供实时通信能力。
  • 04开发时支持热重载。
  • 05提供独立二进制文件、系统软件包和 Docker 镜像。

适用场景

  • 以 worker 模式运行 Laravel 或 Symfony 应用,提升吞吐量。
  • 用单一服务器二进制文件替代 Nginx 与 PHP-FPM 的组合。
  • 在基于 net/http 的 Go 服务中嵌入 PHP。
  • 将 PHP 应用打包为可自执行的二进制文件。

快速上手

  1. 1

    使用 Homebrew 安装 FrankenPHP

    brew install dunglas/frankenphp/frankenphp
  2. 2

    提供当前目录的内容

    frankenphp php-server
  3. 3

    在浏览器中打开 https://localhost 并接受自签名证书

使用前须知

  • 独立的 macOS 二进制文件仅支持 Apple Silicon。
  • 本地 HTTPS 使用需要手动接受的自签名证书。

标签

常见问题

frankenphp 是什么?
基于 Caddy 构建的现代 PHP 应用服务器,支持 worker 模式、Early Hints 与 HTTP/3。 FrankenPHP 是用 Go 编写、基于 Caddy Web 服务器构建的 PHP 应用服务器,可运行任意 PHP 应用。它提供 worker 模式(应用在请求之间保持常驻内存),并支持 Early Hints、通过 Mercure 实现的实时通信以及热重载,同时内置自动 HTTPS、HTTP/2 和 HTTP/3。
frankenphp 可以免费使用吗?用的什么许可证?
frankenphp 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
frankenphp 还在维护吗?
活跃维护中。frankenphp 最近一次提交是在 2026年10月21日。
frankenphp 适合用来做什么?
以 worker 模式运行 Laravel 或 Symfony 应用,提升吞吐量。 用单一服务器二进制文件替代 Nginx 与 PHP-FPM 的组合。 在基于 net/http 的 Go 服务中嵌入 PHP。 将 PHP 应用打包为可自执行的二进制文件。
frankenphp 怎么安装和运行?
使用 Homebrew 安装 FrankenPHP: brew install dunglas/frankenphp/frankenphp 提供当前目录的内容: frankenphp php-server 在浏览器中打开 https://localhost 并接受自签名证书
在哪里获取 frankenphp?
源代码和安装说明在 GitHub 上:https://github.com/php/frankenphp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目