无法让 PHP 报告错误
Posted
技术标签:
【中文标题】无法让 PHP 报告错误【英文标题】:Can't get PHP to report errors 【发布时间】:2011-04-06 00:20:09 【问题描述】:我看不到任何 php 错误。我已经尝试了所有可以打开错误报告的技巧,但没有任何效果。
display_errors 已打开,error_logging 已打开,但是当我查看任何有错误的页面时,我得到一个空白页面。
/var/log/php.log 不存在。
如果我设置了本地日志文件,则不会创建任何内容。
我一直在测试的文件是
<?php
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
ini_set('error_log','script_errors.log');
ini_set('log_errors','On');
$a=
phpinfo();
?>
还有其他想法吗?
【问题讨论】:
【参考方案1】:您可能需要在 .htaccess、httpd.conf 或 php.ini 中设置它(取决于您的服务器或托管公司)。您很可能有一个解析错误,这意味着您的脚本永远不会到达可以打开错误报告的地步。
【讨论】:
我试过你的代码,它在命令行上运行,我想知道你是否有一个拒绝显示 phpinfo() 输出的设置(出于安全原因),你看到一个有效的,但仍然空白页。如果可以的话,看看 'disable_functions' 的设置。 @Nathan 您是否选择了这个答案 b/c 它有帮助还是出于其他原因?我遇到了同样的问题,而且我觉得它没有太大帮助。汉斯,也许你提到了如何检查是否有解析错误。【参考方案2】:您是否尝试过编辑实际的 ini 文件,而不是尝试在运行时更改它?您也可以尝试使用ini_get('display_errors');
来查看您的更改是否生效。如果这些都不起作用,我会说您的安装有问题或非常受限。
【讨论】:
我试过在那里设置,并报告为开启,但没有效果。【参考方案3】:-
在尝试任何
ini_set
选项之前,将phpinfo()
作为脚本中的第一件事运行。如果您的主机禁用/限制了这些 ini 功能,您很可能永远无法访问 phpinfo。
运行网络服务器的用户 ID 在您运行此脚本的目录中是否具有写入权限?它可能无法打开您的测试日志文件并以这种方式终止脚本。
一旦你得到一些phpinfo()
输出,你就可以看到 PHP 是否/在哪里记录错误。它可能会进入服务器的常规 error_log,或完全进入其他位置。
【讨论】:
【参考方案4】:我通过我的软管网站解决了这个问题 cpanel-> php config -> 显示错误
【讨论】:
以上是关于无法让 PHP 报告错误的主要内容,如果未能解决你的问题,请参考以下文章
以 Clover XML 格式生成代码覆盖率报告 ... PHP 致命错误:无法声明类 ...,因为名称已在