FrankenPHP核心命令包括:frankenphp run启动本地服务,frankenphp worker启用常驻内存模式,frankenphp build打包应用为独立二进制,frankenphp version/info/validate用于版本查看、环境诊断与配置验证。

FrankenPHP 的命令行指令简洁但功能集中,日常开发中主要用到的就几个核心命令,配合不同参数能覆盖启动服务、调试、构建和模式切换等常见场景。
基础运行命令
最常用的是 frankenphp run,它会自动查找当前目录下的 Caddyfile 和 PHP 入口文件(如 index.php 或 public/index.php),启动一个带 HTTPS、HTTP/2 支持的本地服务:
- 默认监听
http://localhost:8080和https://localhost:8443(自签名证书) - 若项目有
Caddyfile,会按其中规则路由;没有则启用默认 PHP 路由 - 加
--watch参数可开启文件变更自动重启(适合开发阶段):frankenphp run --watch
Worker 模式专用指令
要启用常驻内存、高性能的 worker 模式,不能只靠 run。必须配合 PHP 入口改造,并使用:
-
frankenphp worker:启动常驻进程,等待请求分发。需搭配封装了
frankenphp_handle_request()的入口脚本 - 典型用法:
frankenphp worker --workers=4 --max-requests=1000,表示启动 4 个 worker,每个处理 1000 次请求后自动重启防内存泄漏 - 注意:worker 模式下不再直接响应 HTTP 请求,而是由主进程统一调度,所以通常配合 Caddyfile 中的
php_server指令使用
构建与打包相关命令
面向部署时,FrankenPHP 提供了将应用“打包进二进制”的能力:
立即学习“PHP免费学习笔记(深入)”;
- frankenphp build:把当前项目(含 PHP 文件、静态资源、Caddyfile)嵌入 FrankenPHP 二进制,生成一个独立可执行文件
- 常用组合:
frankenphp build --output=myapp --env=prod,生成生产环境可用的myapp文件 - 生成的二进制自带 Web 服务器和 PHP 运行时,无需目标机器安装 PHP 或 Caddy,直接
./myapp就能运行
辅助与调试指令
排查问题或验证环境时很实用:
-
frankenphp version:显示版本号及内建 PHP 版本(如
FrankenPHP v1.2.0 (PHP 8.3.12)) - frankenphp info:输出详细运行时信息,包括启用的扩展、OPcache 状态、CGO 是否开启等
-
frankenphp validate:检查当前目录的
Caddyfile语法是否合法,避免启动失败 - 加
-v或--verbose到任意命令后(如frankenphp run -v),可看到更详细的日志,包括路由匹配过程和 PHP 加载路径



















