最轻量可控的部署方式是手动安装静态二进制包,适用于无Docker环境的Linux服务器或边缘设备;它不依赖系统PHP/Nginx,单文件集成Caddy与PHP运行时,需校验架构匹配、静态链接及权限,并通过Caddyfile配置启动。

FrankenPHP 手动安装二进制包是最轻量、最可控的部署方式,特别适合没有 Docker 环境、需直接运行在 Linux 服务器或边缘设备上的场景。它不依赖系统 PHP、Apache 或 Nginx,一个文件即可启动完整 Web 服务(含 Caddy + PHP 运行时)。
确认系统兼容性与前置条件
FrankenPHP 静态二进制支持主流 Linux 发行版(glibc 或 musl)、macOS 和 Windows(WSL2)。关键检查项:
- 运行
uname -m确认架构:x86_64、aarch64(ARM64)等,必须与下载的二进制版本严格匹配 - 执行
file ./frankenphp应显示 statically linked,且无动态依赖(ldd ./frankenphp返回 not a dynamic executable) - 确保目标目录有读写权限,且未被 SELinux/AppArmor 强制拦截(如遇 permission denied,可先试
setenforce 0临时验证)
下载并校验二进制文件
从 GitHub Releases 下载对应平台的最新稳定版(如 frankenphp_1.2.0_linux_amd64.tar.gz),推荐用 curl + SHA256 校验:
curl -LO https://www.php.cn/link/cce7f49cc93c47d849de1e17ef184c1b/download/v1.2.0/frankenphp_1.2.0_linux_amd64.tar.gz curl -LO https://www.php.cn/link/cce7f49cc93c47d849de1e17ef184c1b/download/v1.2.0/frankenphp_1.2.0_linux_amd64.tar.gz.sha256 sha256sum -c frankenphp_1.2.0_linux_amd64.tar.gz.sha256
校验通过后解压:tar -xzf frankenphp_1.2.0_linux_amd64.tar.gz,得到单个可执行文件 frankenphp。
立即学习“PHP免费学习笔记(深入)”;
配置 Caddyfile 启动服务
FrankenPHP 默认使用当前目录下的 Caddyfile 配置。创建一个最小可用配置(以 Laravel 为例):
# Caddyfile
localhost {
root * public/
php_server
encode zstd br gzip
}说明:
-
root * public/指定 Web 根目录,FrankenPHP 默认只托管public/子目录 -
php_server启用 PHP 处理器,自动路由 PHP 请求并托管静态资源 -
encode开启现代压缩算法,提升传输效率 - 若需 HTTPS 自动证书,把
localhost换成已解析的真实域名(如example.com),并确保 443/TCP 和 443/UDP 端口开放
赋予权限并运行
设置可执行权限,然后直接运行:
chmod +x frankenphp ./frankenphp
默认监听 localhost:80 和 localhost:443。访问 http://localhost 即可看到响应。如需后台运行:
- 加
&快速后台:./frankenphp & - 生产环境建议用 systemd 管理(创建
/etc/systemd/system/frankenphp.service) - 日志默认输出到 stdout,可通过
./frankenphp > /var/log/frankenphp.log 2>&1重定向



















