终端直接运行phpinfo()会报错,因它是PHP函数而非shell命令;正确方法是php -r “phpinfo();”或php -a交互模式执行,注意CLI与Web环境配置不同。

终端直接运行 phpinfo() 会报错,别硬试
直接在命令行敲 phpinfo() 不会输出信息,而是报错 PHP Fatal error: Uncaught Error: Call to undefined function phpinfo()。因为 phpinfo() 是 PHP 的内置函数,不是 shell 命令,必须在 PHP 解释器上下文中执行。
用 php -r 一行执行最简单
这是最快捷、无需写文件的方法,适合快速验证 PHP 版本、扩展是否加载:
php -r "phpinfo();"
注意细节:
- 引号必须是双引号(Windows cmd 下可用双引号;PowerShell 需转义或改用单引号包裹,但更推荐用 cmd 或 WSL)
-
-r参数表示“运行代码”,不隐式包含,所以必须自己写完整语句 - 如果只想看某部分(比如已加载的扩展),可加过滤:
php -r "phpinfo();" | grep "gd"
用 php -a 交互模式执行(适合调试多行逻辑)
进入交互式 PHP 环境后,可以逐行输入并执行,适合临时测试变量或函数行为:
立即学习“PHP免费学习笔记(深入)”;
php -a
然后输入:
> phpinfo();
回车即输出。退出按 Ctrl+D(Linux/macOS)或 Ctrl+Z(Windows)。注意:
- 某些 PHP 编译版本禁用了交互模式(报错
Interactive mode enabled but readline extension is not available),此时只能用-r -
php -a默认不加载所有配置(如php.ini中的disable_functions可能拦掉phpinfo),实际行为以php --ini显示的配置路径为准
输出到文件再查看,避免终端刷屏
默认输出内容很长,终端可能截断或难以检索。用重定向保存成 HTML 或文本更实用:
php -r "phpinfo();" > phpinfo.html
或生成纯文本(去掉 HTML 标签,方便 grep):
php -r "ob_start(); phpinfo(); echo strip_tags(ob_get_clean());" > phpinfo.txt
关键点:
-
phpinfo()默认输出 HTML,直接重定向为 .html 文件后可用浏览器打开,格式清晰 - 若服务器禁用了
phpinfo()(常见于生产环境),disable_functions配置里含phpinfo,这时命令行也会失败,需检查php -i | grep disable - CLI 和 Web SAPI 的
php.ini往往不同,php --ini和php -i输出的配置路径要核对清楚
真正容易被忽略的是:命令行 PHP 和 Web 用的不是同一份配置,phpinfo() 输出的内容可能完全不同——查扩展是否启用、时区、内存限制前,先确认你查的是哪个环境。
