在 macos 14 sonoma 上安装 frankenphp v1.2.1 需绕过 homebrew 和 docker,先根据芯片架构下载对应预编译二进制,解压后移至 /usr/local/bin/ 并执行 chmod +x 赋予执行权限,再创建 public/.frankenphp.router.php 路由文件,最后运行 frankenphp server --document-root public/ --router ./public/.frankenphp.router.php 启动服务。

在 macOS 14 Sonoma 上用官方脚本安装 FrankenPHP v1.2.1,需绕过 Homebrew 和 Docker,直接获取预编译二进制并赋予执行权限,否则无法启动 Laravel 或 Symfony 项目——FrankenPHP 不是 PHP 扩展,而是独立的 Go 二进制应用服务器,装错位置或漏设权限会导致 Permission denied 或 command not found。
确认系统架构与下载地址
打开终端,运行 arch 查看芯片类型:输出 arm64 表示 M 系列芯片,amd64 表示 Intel;FrankenPHP 官方发布页(https://github.com/dunglas/frankenphp/releases/tag/v1.2.1)中对应文件名分别为 frankenphp_1.2.1_darwin_arm64.tar.gz 和 frankenphp_1.2.1_darwin_amd64.tar.gz。
复制对应链接,用 curl -L -o frankenphp.tar.gz [URL] 下载,例如 M 芯片用户执行:curl -L -o frankenphp.tar.gz https://github.com/dunglas/frankenphp/releases/download/v1.2.1/frankenphp_1.2.1_darwin_arm64.tar.gz。
解压并放置到可执行路径
执行 tar -xzf frankenphp.tar.gz 解压,生成 frankenphp 二进制文件。
把它移到 /usr/local/bin/(需管理员权限):sudo mv frankenphp /usr/local/bin/。
【必须执行 chmod +x /usr/local/bin/frankenphp】,否则后续所有调用都会报 “permission denied”——macOS 默认不赋予下载文件执行权限,且 Gatekeeper 可能二次拦截。
验证是否就位:frankenphp --version 应输出 FrankenPHP v1.2.1。
创建最小可用路由配置
进入你的 PHP 项目根目录(含 public/ 子目录),执行:touch public/.frankenphp.router.php。
用 nano 或 VS Code 编辑该文件,写入以下内容:
<?php return ['index' => 'index.php'];
这一步不可跳过:FrankenPHP v1.2.1 默认强制要求存在 .frankenphp.router.php,否则启动时直接退出并报错 “router file not found”,不会尝试 fallback 到默认行为。
启动 FrankenPHP 服务
仍在项目根目录下,运行:frankenphp server --document-root public/ --router ./public/.frankenphp.router.php。
服务默认监听 :8080,浏览器访问 http://localhost:8080 即可看到响应;如需换端口,加 --addr :8000 参数即可。
按 Ctrl+C 停止服务;后台运行可加 &,但生产环境请改用 launchd 或 systemd 管理。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











