无法让 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 报告错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Chrome 中的 PHP 中启用错误报告

以 Clover XML 格式生成代码覆盖率报告 ... PHP 致命错误:无法声明类 ...,因为名称已在

强制 Smarty 显示 PHP 错误

php中ini_set()的目的是什么? (尤其是错误报告)

怎么让php打印错误日志?

IIS6配置完PHP环境后 应用程序池无法启动