frankenphp 是 ubuntu 上轻量级 php 运行时,用 go 直接执行 php 字节码,无需 php-fpm 或 nginx/apache;支持一键安装、热重载、https 及 systemd 托管,适用于本地开发与边缘部署。

Ubuntu 系统上安装 FrankenPHP 不是传统 PHP-FPM 的平替,而是一次运行模型的切换:它用 Go 编写的 HTTP 服务器直接执行 PHP 字节码(通过 embed 模式),无需 PHP-CGI 或 php-fpm 进程管理,也不依赖 Apache/Nginx 作为反向代理——它自己就是 Web 服务器 + PHP 运行时。这意味着部署更轻量、启动更快、热重载原生支持,特别适合现代 PHP 应用(如 Symfony、Laravel、RoadRunner 风格项目)和本地开发/边缘部署场景。
确认系统与前置条件
FrankenPHP 官方支持 Ubuntu 20.04+(含 22.04、24.04),需满足:
- 已安装 curl、wget、unzip、systemd(Ubuntu Desktop/Server 默认含前三个;WSL2 用户需确认
systemd已启用) - 系统架构为 amd64 或 arm64(树莓派 5 / Orange Pi 5B 等 aarch64 设备可用)
- 未占用
8000端口(FrankenPHP 默认监听该端口;若需改用 80/443,须配合sudo或 systemd 特权配置) - 建议关闭或卸载正在运行的 Nginx/Apache(避免端口冲突;FrankenPHP 可独立提供 HTTPS、静态文件服务、.php 路由)
下载并安装 FrankenPHP 二进制
FrankenPHP 提供预编译二进制,无需编译,不依赖系统 PHP:
- 执行以下命令获取最新稳定版(截至 2026 年 10 月,当前为 v1.2.1):
curl -LSfs https://pkg FrankenPHP.dev/install.sh | sh -s -- -b /usr/local/bin
- 验证安装:
frankenphp version
输出应包含版本号与 Go 运行时信息。若提示 command not found,请检查 /usr/local/bin 是否在 $PATH 中(可临时运行 export PATH="/usr/local/bin:$PATH",或写入 ~/.bashrc)。
准备 PHP 项目并启动服务
FrankenPHP 不需要全局 PHP 环境,但项目需含 public/ 目录(类似 Laravel/Symfony 标准结构):
- 新建测试项目:
mkdir -p ~/myapp/public && echo '' > ~/myapp/public/index.php
- 启动 FrankenPHP(自动检测
public/并启用 PHP 处理):
cd ~/myapp && frankenphp serve
终端将显示:Starting FrankenPHP development server on http://127.0.0.1:8000。浏览器访问 http://localhost:8000 即可看到输出。
- 支持常见开发选项:
frankenphp serve --https --cert ./cert.pem --key ./key.pem(启用 HTTPS)
frankenphp serve --host 0.0.0.0 --port 8080(监听所有接口,端口 8080)
配置为系统服务(生产就绪)
如需开机自启、日志管理、进程守护,创建 systemd unit:
- 新建服务文件:
sudo tee /etc/systemd/system/frankenphp.service
[Unit]
Description=FrankenPHP Service
After=network.target
[Service]
Type=exec
User=www-data
WorkingDirectory=/var/www/myapp
ExecStart=/usr/local/bin/frankenphp serve --env=prod
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
- 启用并启动:
sudo systemctl daemon-reload && sudo systemctl enable --now frankenphp
查看状态:sudo systemctl status frankenphp;查看日志:sudo journalctl -u frankenphp -f。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











