PHP探针返回空白页主因是错误被静默屏蔽:display_errors=Off且error_log不可写,或存在Parse/Fatal错误、短标签、废弃函数、内存不足等问题。

PHP探针脚本执行后返回空白页,大概率是 PHP 解析失败或致命错误被静默屏蔽
不是探针写错了,而是 PHP 遇到 Parse error、Fatal error 或 memory_limit 耗尽时,默认不输出任何内容——尤其当 display_errors = Off 且 log_errors = On 时,错误全进日志,页面就空着。
检查 error_log 和 display_errors 设置是否生效
空白页最常见原因是错误被压制。先确认 PHP 是否真在报错:
-
display_errors必须为On(开发环境),否则echo前的致命错误不会显示 -
error_reporting推荐设为E_ALL,否则Notice或Warning也看不到 - 查看
error_log文件路径(用phpinfo()查error_log行),直接 tail 日志:tail -f /var/log/php_errors.log
- 若用 Nginx + PHP-FPM,还需确认
php-fpm.conf中的catch_workers_output = yes,否则 worker 内部错误不透出
探针文件本身存在语法或兼容性问题
很多网上流传的 PHP 探针(如 phpinfo.php 或老旧 tz.php)含过时函数或短标签,PHP 7.4+ 默认禁用 short_open_tag,导致整页不解析:
- 打开探针文件,确认首行是
,而非(短标签) - 检查是否调用了已废弃函数,如
mysql_connect()(PHP 7.0+ 移除)、eregi()(PHP 5.3+ 废弃) - 部分探针用
ini_get_all()获取全部配置,但某些 Suhosin 或硬编码安全模块会拦截该函数,返回空数组甚至触发 fatal - 如果探针里有
shell_exec('uname -a')类调用,确认disable_functions没把它列进去(查phpinfo()的disable_functions行)
内存不足或超时导致脚本中断无输出
探针常做大量 extension_loaded()、function_exists()、get_loaded_extensions() 扫描,小内存 VPS 容易崩:
立即学习“PHP免费学习笔记(深入)”;
- 临时提高内存限制:
ini_set('memory_limit', '256M');放在探针开头(注意:必须在任何输出前) - 检查
max_execution_time,探针若遍历目录或读取大文件可能超时,可加:set_time_limit(30);
- 若用 cPanel 或 Plesk,其自带 PHP 运行模式(如 suPHP、LSAPI)可能对
scandir()等敏感函数限权,导致静默失败
真正卡住的地方,往往是 display_errors = Off 和 error_log 路径不可写两个条件同时成立——错误既不显示,又没地方记,只剩空白。动手前先确认这两个值,比重传探针文件有用得多。











