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

如果您在浏览器中访问 PHP 文件并调用 phpinfo() 函数,但页面完全空白或仅显示空白源码,则可能是由于 PHP 解析未启用、文件未被正确执行或函数被禁用。以下是排查与修复此问题的具体步骤:
一、确认 PHP 文件是否被 Web 服务器解析
若服务器将 .php 文件当作纯文本返回,而非交由 PHP 引擎执行,则 phpinfo() 不会被调用,页面将无任何输出或仅显示原始代码。
1、新建一个名为 test.php 的文件,内容为:。
2、将该文件上传至 Web 根目录(如 Apache 的 htdocs 或 Nginx 的 html 目录)。
立即学习“PHP免费学习笔记(深入)”;
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 apache2 或 sudo systemctl restart php-fpm nginx)。
三、验证短标签是否启用(影响 和 = 写法)
若 PHP 文件使用了短开启标签 或短回显标签 =,而 short_open_tag 在 php.ini 中被关闭,则 phpinfo() 不会被识别为 PHP 代码,造成无输出。
1、确保 PHP 文件中使用标准长标签:,而非 phpinfo(); ?>。
2、检查 php.ini 中 short_open_tag 的值:应为 On(若需支持短标签)或保持 Off 并统一使用长标签。
3、修改后重启 PHP 或 Web 服务进程。
四、检查输出缓冲与错误报告设置
当 output_buffering 开启且脚本异常终止,或 display_errors 关闭时,即使 phpinfo() 执行出错也不会显示提示,表现为静默空白。
1、在调用 phpinfo() 前添加错误报告开启语句:。
2、检查当前 php.ini 中 display_errors 是否为 On,error_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 BOM 或 ANSI/ISO-8859-1。
3、在 VS Code 中点击右下角编码标识 → 选择 Save with Encoding → 选 UTF-8(默认无 BOM)。
4、保存后重新访问页面。











