frankenphp二进制包可直接运行:linux执行curl https://frankenphp.dev/install.sh | sh;macos用brew install frankenphp或手动下载chmod+mv;windows下载解压并配置path;验证用frankenphp --version和frankenphp php-cli -v。

FrankenPHP 二进制包可以直接运行,无需系统 PHP、无需编译、无需配置环境变量(可选),Linux/macOS/Windows 全平台支持。
怎么快速拿到可执行的 frankenphp 二进制
官方提供预编译的静态二进制,开箱即用:
- Linux x86_64:运行
curl https://frankenphp.dev/install.sh | sh,自动下载、赋权、移入/usr/local/bin/ - macOS:用 Homebrew 最省心 ——
brew install frankenphp;或手动下载 macOS ARM64/x86_64 二进制,chmod +x frankenphp && sudo mv frankenphp /usr/local/bin/ - Windows:去
https://frankenphp.dev/下载.zip,解压后把目录加进系统PATH,或直接双击frankenphp.exe启动
验证是否就绪:frankenphp --version 应输出版本号;frankenphp php-cli -v 能看到内置 PHP 版本(当前为 PHP 8.5)。
frankenphp php-server 启动 Laravel 项目时为什么报 “No such file or directory”
常见原因是没在 Laravel 项目的 public/ 目录下执行命令,或没配 Caddyfile。FrankenPHP 默认不自动识别 Laravel 结构,它只认当前目录下的 Caddyfile 和 public/ 路径。
- 必须在 Laravel 项目根目录(含
artisan的那层)执行frankenphp php-server - 项目根目录需存在
Caddyfile,内容至少包含root public/和php_server指令 - 如果漏了
Caddyfile,会 fallback 到默认静态服务,找不到index.php就报这个错误 - Windows 用户注意路径分隔符不是问题,但 PowerShell 可能缓存旧命令,建议用 CMD 或重启终端
为什么 frankenphp php-cli 执行脚本失败,提示扩展缺失
FrankenPHP 内置扩展是固定的,不是所有 ext-* 都默认开启。Laravel 运行时依赖的扩展(如 pdo_mysql、redis、intl)必须显式确认存在。
- 先查已启用扩展:
frankenphp php-cli -m,比对你的composer.json中ext-*条目 - Linux/macOS 二进制默认带
pdo_sqlite、json、mbstring等基础扩展,但pdo_mysql、redis、gd需要额外加载(Docker 镜像里用install-php-extensions,但独立二进制不提供该工具) - 如果你必须用独立二进制且缺关键扩展,唯一可靠方案是换 Docker 镜像:
dunglas/frankenphp:latest支持RUN install-php-extensions,扩展可控性高 - 别试图手动编译 .so 扩展塞进去——FrankenPHP 是静态链接的,不支持动态加载外部扩展
Docker 方式启动 Laravel 却访问 404,检查这三点
Docker 启动快,但挂载和路径错一点就白忙:
- 确保
-v $PWD:/app挂载的是 Laravel 项目根目录(含public/子目录),不是public/本身 - 官方镜像默认
Caddyfile的root是public/,所以容器内路径必须是/app/public/,否则静态资源和入口都找不到 - 检查容器日志:
docker logs <container-id></container-id>,常见错误是open /app/public/index.php: no such file,说明挂载路径错了或public/不存在
最简验证法:进容器看一眼 ls -l /app/public/,有 index.php 和 robots.txt 才算挂对了。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











