frankenphp 是基于 caddy 的现代 php 应用服务器,用 go 编写并内嵌 php 运行时,兼具 web 服务(http/2/3、tls、静态文件)与 php 执行能力,支持常驻 worker 模式以消除重复 bootstrap 开销,简化传统 nginx+php-fpm 多层配置与性能瓶颈。

FrankenPHP 是基于 PHP 的现代 Web 服务器,它直接嵌入 PHP 运行时,因此查看其 PHP 版本和扩展信息的方式与标准 PHP CLI 或 FPM 基本一致,但需注意运行上下文是否为 FrankenPHP 自身(而非系统默认 PHP)。
确认当前实际运行的 PHP 二进制路径
FrankenPHP 启动时使用的是自带的 PHP 二进制(通常为 frankenphp 可执行文件内嵌或链接的 PHP),不是系统全局的 php 命令。所以第一步是明确你调用的是哪个 PHP:
- 若通过
frankenphp webserver启动,其内置 PHP 版本由 FrankenPHP 发行包决定,不依赖系统 PHP - 运行
frankenphp --version可显示 FrankenPHP 版本及所集成的 PHP 版本(例如:FrankenPHP v1.2.0 (PHP 8.3.12)) - 若你手动调用了
php -v,请先确认该命令指向的是 FrankenPHP 自带的 PHP:执行which php或php -r "echo PHP_BINARY;"查看路径;必要时用完整路径(如./frankenphp php -v)确保查的是内嵌 PHP
查看 PHP 版本(推荐三种方式)
FrankenPHP 支持标准 PHP 命令,只要能访问其 PHP 二进制即可:
-
frankenphp php -v—— 最直接,输出 PHP 版本、Zend Engine 和构建信息 -
frankenphp php --version—— 简洁版版本号(如8.3.12) - 在 PHP 脚本中调用
phpversion()或读取常量PHP_VERSION,例如:frankenphp php -r "echo phpversion();"
列出已加载的扩展及其版本
FrankenPHP 加载的扩展与常规 PHP 一致,但仅限其打包时启用的模块(不含系统 php.ini 中未被包含的扩展):
-
frankenphp php -m—— 列出所有已启用的扩展名(如curl,openssl,mbstring) -
frankenphp php --ri gd—— 替换gd为任意扩展名,查看该扩展的详细运行时信息,含 Version 字段 -
frankenphp php -i | grep "Version"—— 全局检索版本相关行,配合grep -A2 -B1 "extension_name"定位特定扩展 - 在脚本中用
phpversion('pdo_mysql')获取指定扩展版本,返回字符串或false(未加载时)
获取完整环境信息(Web 模式下)
当 FrankenPHP 以 Web 模式运行(如服务 HTTP 请求)时,可像传统 PHP 一样使用 phpinfo():
- 创建一个
info.php文件,内容为<?php phpinfo(); ?> - 将其放入 FrankenPHP 的文档根目录(如
public/) - 通过浏览器访问
http://localhost:8080/info.php(端口依配置而定) - 页面顶部明确显示 PHP 版本,"Loaded Extensions" 区域列出全部扩展,每个扩展区块含 Version、Directive 等详情
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











