FrankenPHP在Linux上安装部署的核心是下载预编译二进制、配置反向代理或直接启用内置服务器,自带PHP SAPI无需系统PHP;下载官方frankenphp-linux-*二进制,chmod +x后移至/usr/local/bin,运行frankenphp version验证,可frankenphp serve快速启动或frankenphp run --fcgi接入Nginx。

FrankenPHP 在 Linux 服务器上安装部署,核心是下载预编译二进制、配置 Web 服务器反向代理、并确保 PHP 扩展兼容。它不依赖系统 PHP,而是自带 SAPI,所以无需编译 PHP 或修改现有环境。
直接下载官方二进制并运行
FrankenPHP 提供静态链接的单文件二进制(Linux x86_64 / ARM64),开箱即用:
- 访问 https://github.com/dunglas/frankenphp/releases,下载最新版
frankenphp-linux-*文件(如frankenphp-linux-amd64) - 赋予执行权限:
chmod +x frankenphp-linux-amd64 - 重命名为
frankenphp并移至 PATH(例如sudo mv frankenphp-linux-amd64 /usr/local/bin/frankenphp) - 验证:运行
frankenphp version,应输出版本号和构建信息
启动服务并监听 HTTP/HTTPS
FrankenPHP 自带内置 Web 服务器,适合快速验证或轻量部署:
- 最简启动:
frankenphp serve --www ./public --addr :8080(假设 Laravel/Symfony 的 public 目录为入口) - 启用 HTTPS(自签名证书):
frankenphp serve --www ./public --addr :443 --tls-cert ./cert.pem --tls-key ./key.pem - 生产环境建议加
--env=prod和--workers=4控制并发数 - 使用
systemd守护进程时,需编写 service 文件,指定User、WorkingDirectory和ExecStart,禁用PrivateTmp(因需访问 PHP 文件)
与 Nginx/Apache 反向代理集成
在已有 Web 服务器环境中,推荐用反向代理方式接入 FrankenPHP(更安全、灵活):
立即学习“PHP免费学习笔记(深入)”;
- 启动 FrankenPHP 为 FastCGI 模式:
frankenphp run --fcgi 127.0.0.1:8088 - Nginx 配置示例(server 块内):
location ~ \.php$ {<br> fastcgi_pass 127.0.0.1:8088;<br> fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;<br> include fastcgi_params;<br>} - 注意:FrankenPHP 的 FastCGI 模式不支持
SCRIPT_NAME自动推导,需确保SCRIPT_FILENAME正确指向磁盘绝对路径;建议配合realpath_root使用
PHP 扩展与应用适配要点
FrankenPHP 内置 PHP 8.2+ 运行时,但部分扩展行为有差异:
- 默认启用
opcache、curl、json、mbstring等常用扩展,无需额外安装 -
pdo_mysql、redis、gd等需手动启用:通过--php-extension参数加载,例如--php-extension=redis.so(so 文件须位于系统标准路径或用绝对路径指定) - Laravel/Symfony 应用通常无需修改,但需确认
public/index.php是唯一入口,且路由未强依赖 Apache mod_rewrite 规则 - 会话存储建议用 Redis 或数据库,避免依赖本地文件(
session.save_handler=files在多 worker 下可能出问题)



















