Apple Silicon(M1/M2/M3)Mac必须使用frankenphp-darwin-arm64.tar.gz,下错将触发exec format error或Bad CPU type in executable;需以uname -m输出arm64为准,file frankenphp验证含arm64才匹配。

苹果M芯片(M1/M2/M3)Mac必须用 frankenphp-darwin-arm64.tar.gz,下错会直接报 exec format error 或 Bad CPU type in executable —— 这不是权限问题,是架构不匹配导致二进制根本无法加载。
确认你的 Mac 架构
终端执行:
uname -m
输出 arm64 就是 Apple Silicon;输出 x86_64 是 Intel。别信“系统报告”里模糊的“芯片:Apple M2”,要以命令为准。
也可以解压后验证二进制:
立即学习“PHP免费学习笔记(深入)”;
file frankenphp
结果含 arm64 才对得上 M 系列芯片。
下载与安装步骤
- 去 FrankenPHP GitHub Releases 页面,找最新版(如 v1.2.0),下载
frankenphp-darwin-arm64.tar.gz - 解压:
tar -xzf frankenphp-darwin-arm64.tar.gz - 赋予执行权限:
chmod +x frankenphp - 移到系统路径:
sudo mv frankenphp /usr/local/bin/
常见踩坑点
- 别用 Homebrew 安装:Homebrew 默认源可能拉的是 amd64 版,或旧版通用包(FrankenPHP 自 v1.0.0 起已停供 fat binary)
- 别从第三方镜像或过期文档链接下载:尤其警惕写着“macOS universal”“darwin-all”之类名称的包,官方早已不再提供
-
别把 Linux 包当 macOS 用:看到
frankenphp-linux-arm64.tar.gz就绕开,它在 macOS 上完全跑不起来
运行前注意
FrankenPHP 静态二进制不读取外部 php.ini,所有 PHP 配置需通过 frankenphp build --php-ini=your.ini 嵌入,或靠环境变量(如 PHP_INI_SCAN_DIR)间接生效。Caddyfile 中务必写明 root public/,否则 Laravel/Symfony 会 404。



















