CLI与Web模式下phpinfo()输出存在五大差异:执行环境、格式内容、扩展状态、环境变量、错误处理。CLI读取独立php.ini、纯文本输出、仅加载CLI扩展、继承shell变量、错误直显终端;Web依赖服务器、HTML格式、启用Web扩展、受限于服务器环境、错误常记录日志。

当您需要查看PHP环境配置信息时,CLI模式与Web模式下的phpinfo()函数输出存在显著差异。以下是两种模式输出对比的详细说明:
一、执行环境不同
CLI版phpinfo()运行于命令行解释器中,不依赖Web服务器进程;Web版phpinfo()则由Web服务器(如Apache或Nginx)调用PHP模块后在HTTP响应中渲染。二者加载的PHP配置文件可能不一致,导致扩展启用状态、路径设置等存在差异。
1、CLI模式默认读取php.ini路径可通过php --ini命令查看。
2、Web模式实际加载的php.ini路径需通过phpinfo()页面中的Loaded Configuration File字段确认。
立即学习“PHP免费学习笔记(深入)”;
3、同一台服务器上,CLI与Web模式可能使用完全不同的php.ini文件。
二、输出格式与内容差异
CLI版phpinfo()以纯文本流方式输出,无HTML标签包裹,适合管道处理与脚本解析;Web版则生成完整HTML文档,含表格结构、CSS样式及超链接,便于人工浏览。
1、CLI输出中所有章节标题为纯文本,如“core”、“date”等小写标识符。
2、Web输出中各模块标题为
标签封装的HTML标题,且包含锚点链接。
3、CLI版不显示$_SERVER、$_ENV等超全局变量的具体值,而Web版会完整列出。
三、扩展加载状态不一致
部分扩展仅在特定SAPI(Server API)下启用,例如mod_php模式下可用的apache2handler在CLI中不可用,反之readline扩展常仅存在于CLI SAPI中。
1、执行php -m可列出CLI已启用的全部扩展。
2、在Web版phpinfo()页面中查找“Additional Modules”区域查看Web上下文加载的扩展。
3、gd、curl、openssl等基础扩展虽通常两者共存,但版本号可能因配置分离而不同。
四、环境变量与路径设置区别
CLI模式继承操作系统shell环境变量,Web模式则受Web服务器用户权限及配置限制,PATH、TMPDIR、HOME等变量值往往不同。
1、CLI中执行echo getenv('PATH')可获取当前shell的PATH值。
2、Web版phpinfo()页面中“Environment”节展示的是Web服务器进程启动时的环境快照。
3、Web模式下$_SERVER['DOCUMENT_ROOT']和$_SERVER['SCRIPT_FILENAME']等变量在CLI中为空或未定义。
五、错误报告与显示行为差异
CLI默认开启display_errors且输出至终端,Web模式下该指令常被设为Off,错误信息转由Web服务器日志记录。
1、CLI版phpinfo()执行失败时直接打印PHP警告或致命错误到标准错误流。
2、Web版若发生错误,可能返回空白页或HTTP 500响应,具体取决于error_reporting和log_errors设置。
3、CLI中error_reporting(E_ALL)生效范围覆盖整个脚本生命周期,Web中可能被.htaccess或虚拟主机配置覆盖。











