phpinfo输出被截断怎么办_增大缓冲区或修改配置方法【技巧】

phpinfo() 输出被截断时,应依次检查并调整 output_buffering 大小、禁用 zlib.output_compression、手动管理输出缓冲、排查 Suhosin 限制、提升 memory_limit 和 max_execution_time。

phpinfo输出被截断怎么办_增大缓冲区或修改配置方法【技巧】

如果您在浏览器中访问 phpinfo() 页面时发现输出内容被截断,可能是由于 PHP 输出缓冲区限制或服务器配置导致的。以下是解决此问题的步骤:

一、增大 output_buffering 缓冲区大小

PHP 的 output_buffering 配置项控制脚本输出前的缓冲容量,默认值可能过小,无法容纳完整的 phpinfo() 输出。修改该值可避免中途截断。

1、找到当前 PHP 配置文件 php.ini 的路径,可通过执行 php –ini 命令确认。

2、用文本编辑器打开 php.ini 文件,搜索 output_buffering

立即学习PHP免费学习笔记(深入)”;

3、将原行 output_buffering = 4096(或 off / 0)修改为 output_buffering = 65536 或更大整数值(如 131072)。

4、保存文件后,重启 Web 服务器(如 Apache 执行 sudo systemctl restart apache2,Nginx + PHP-FPM 则重启 php-fpmnginx)。

二、禁用 zlib.output_compression 并检查相关压缩设置

启用 zlib.output_compression 可能与输出缓冲机制冲突,尤其在高信息量输出(如 phpinfo)时引发截断或乱码。

1、在 php.ini 中搜索 zlib.output_compression

2、将其值设为 Off,即修改为 zlib.output_compression = Off

3、同时检查是否存在 zlib.output_compression_level,如有则注释掉该行或设为 -1(禁用)。

4、保存并重启 PHP 运行环境。

三、使用 ob_end_flush() 显式控制输出缓冲

若无法修改 php.ini(如共享主机环境),可在调用 phpinfo() 前手动管理输出缓冲,确保全部内容刷新到客户端。

1、创建一个新 PHP 文件(如 info.php),写入以下代码:

ARTi.PiCS

ARTi.PiCS

ARTi.PiCS是一款由AI驱动的虚拟头像生产器,可以生成200多个不同风格的酷炫虚拟头像

下载

2、确保该文件无任何空白字符或 UTF-8 BOM 头,且位于 Web 可访问目录下。

3、通过浏览器访问该文件 URL,此时输出将绕过默认缓冲限制,完整呈现。

四、检查 Suhosin 扩展限制(如已启用)

Suhosin 是一个第三方安全扩展,其 suhosin.output.collapse_newlinessuhosin.output.filter 等设置可能干扰长输出流。

1、运行 php -m | grep suhosin 确认是否加载了 Suhosin。

2、若存在,在 php.ini 或 suhosin.ini 中添加或修改:suhosin.output.filter = Offsuhosin.output.collapse_newlines = Off

3、保存后重启 PHP 服务。

五、临时提高 memory_limit 和 max_execution_time

phpinfo() 在某些扩展全启环境下可能消耗较多内存或执行时间,触发超限中断。

1、在 php.ini 中定位 memory_limit,改为 memory_limit = 256M

2、定位 max_execution_time,改为 max_execution_time = 60

3、也可在 phpinfo() 脚本顶部加入:ini_set(‘memory_limit’, ‘256M’); ini_set(‘max_execution_time’, 60);

4、保存配置并重启服务或验证脚本生效。

https://www.php.cn/faq/1967472.html

发表回复

Your email address will not be published. Required fields are marked *