必须用 frankenphp --php-version 查看其内置 PHP 版本(如 8.3.12),该命令直接输出纯版本号,是唯一可靠方式;php -v 查的是系统 PHP,与 FrankenPHP 完全隔离,误用将导致扩展兼容性误判。

要准确获知 macOS 上 FrankenPHP v1.3 二进制实际捆绑的 PHP 内核版本,不能依赖系统 php 命令或 phpinfo() 页面——因为 FrankenPHP 的 PHP 运行时完全嵌入其自身二进制中,与系统环境物理隔离,查错版本会导致后续扩展兼容性误判或部署失败。
用 frankenphp --php-version 直接读取内置版本
打开终端,执行以下命令:
frankenphp --php-version
该命令会直接输出形如 8.3.12 的纯版本号,不含日期、构建参数或扩展列表。这是 FrankenPHP 官方唯一支持且强制暴露内置 PHP 版本的接口。
立即学习“PHP免费学习笔记(深入)”;
若提示 command not found,说明 frankenphp 未加入 PATH 或安装不完整;先运行 which frankenphp 确认路径,再检查是否在安装目录下(如 /usr/local/bin/frankenphp 或 Homebrew 的 $(brew --prefix)/bin/frankenphp)。
启动时日志首行验证(备用确认法)
当 frankenphp --php-version 不可用(如旧版预发布二进制),可改用运行时日志反推:
执行 frankenphp run(需项目目录下有 frankenphp.yaml 或 public/ 存在)
观察终端第一行输出,典型格式为:PHP 8.3.12 (cli) (built: Sep 15 2026 10:22:41)
这行由 FrankenPHP 启动器自动生成,调用的是其内部 PHP 解释器,结果与 --php-version 严格一致。若项目无配置文件导致启动失败,此法不可用。
为什么不能用 php -v 或 php --version
php -v 查的是你 macOS 上独立安装的 PHP CLI(比如通过 Homebrew 装的 8.4.0),和 FrankenPHP 完全无关。
FrankenPHP v1.3 不提供独立 php 二进制,也不复用系统 php 命令路径;它把 PHP 引擎静态链接进自身,没有外部 PHP 可调用。
误信 php -v 结果去配扩展或写兼容代码,会导致 Web 请求中函数行为异常(例如 mbstring 编码失败、opcache 未启用却以为已开),而你根本没意识到问题根源在版本错配。



















