phpinfo不显示怎么办_PHP信息函数无输出的常见原因与解决【解答】

PHP未解析或phpinfo()被禁用导致页面空白;需检查Web服务器是否执行PHP、确认phpinfo()未被disable_functions禁用,并验证短标签设置。

如果您在浏览器中访问 PHP 文件并调用 phpinfo() 函数,但页面完全空白或仅显示空白源码,则可能是由于 PHP 解析未启用、文件未被正确执行或函数被禁用。以下是排查与修复此问题的具体步骤:

一、确认 PHP 文件是否被 Web 服务器解析

若服务器将 .php 文件当作纯文本返回,而非交由 PHP 引擎执行,则 phpinfo() 不会被调用,页面将无任何输出或仅显示原始代码。

1、新建一个名为 test.php 的文件,内容为:

2、将该文件上传至 Web 根目录(如 Apache 的 htdocs 或 Nginx 的 html 目录)。

3、通过浏览器访问 http://localhost/test.php(或对应域名路径)。

4、若页面显示 PHP is working,说明 PHP 已启用;若显示源码或 404/500 错误,则需检查 Web 服务器配置。

二、检查 phpinfo() 是否被禁用

部分主机环境出于安全考虑,在 php.ini 中通过 disable_functions 指令禁用了 phpinfo(),导致调用后无输出且不报错。

1、创建一个 PHP 文件,写入:

2、访问该文件,若输出为 bool(false),则确认 phpinfo 被禁用。

3、查找当前生效的 php.ini 文件路径:执行 php --ini(命令行)或在已知可运行的 PHP 页面中调用 phpinfo() 查看 Loaded Configuration File 行。

4、编辑该 php.ini 文件,搜索 disable_functions,删除其中的 phpinfo(注意保留其他函数,用英文逗号分隔)。

5、重启 Web 服务器(如 sudo systemctl restart apache2sudo systemctl restart php-fpm nginx)。

三、验证短标签是否启用(影响 和 = 写法)

若 PHP 文件使用了短开启标签 或短回显标签 =,而 short_open_tagphp.ini 中被关闭,则 phpinfo() 不会被识别为 PHP 代码,造成无输出。

1、确保 PHP 文件中使用标准长标签:,而非 phpinfo(); ?>

2、检查 php.inishort_open_tag 的值:应为 On(若需支持短标签)或保持 Off 并统一使用长标签。

3、修改后重启 PHP 或 Web 服务进程。

四、检查输出缓冲与错误报告设置

output_buffering 开启且脚本异常终止,或 display_errors 关闭时,即使 phpinfo() 执行出错也不会显示提示,表现为静默空白。

1、在调用 phpinfo() 前添加错误报告开启语句:

2、检查当前 php.inidisplay_errors 是否为 Onerror_reporting 是否包含 E_ALL

3、若使用 ob_start() 等输出控制函数,需确保未意外拦截或丢弃 phpinfo() 输出。

五、排除文件编码与 BOM 头干扰

若 PHP 文件以 UTF-8 with BOM 编码保存,BOM 字节(EF BB BF)会被当作输出提前发送,导致 phpinfo() 因 HTTP 头已发送而无法正常输出(尤其在启用 zlib.output_compression 时更易触发空白页)。

1、用支持编码查看的编辑器(如 VS Code、Notepad++)打开 PHP 文件。

2、确认文件编码为 UTF-8 without BOMANSI/ISO-8859-1

3、在 VS Code 中点击右下角编码标识 → 选择 Save with Encoding → 选 UTF-8(默认无 BOM)。

4、保存后重新访问页面。