php解析错误不会显示

时间:2012-05-19 17:33:00

标签: php

我正在运行ubuntu 10.04 + nginx + php-fpm 5.4

如果我在php.ini中设置display_errors = On,则会打印所有错误。如果相反,我将其设置为关闭然后使用ini_set('display_errors,'1');他们将直接在脚本中显示,但不会显示解析错误,只是一个空白页面。我也尝试使用error_reporting和E_STRICT,但我找不到办法!

4 个答案:

答案 0 :(得分:14)

如果您在display_errors中停用php.ini,稍后在使用ini_set()的PHP脚本中启用它,则只会在包含该{{1}的行后启用它已经执行了调用

在PHP脚本开始之前发生解析错误 - 解析PHP文件时(因此称为“解析错误”)

这意味着它们在ini_set()甚至有可能被执行之前发生 - 这意味着,在您的情况下,当发生解析错误时,ini_set()未启用;因此,你没有得到任何显示。

答案 1 :(得分:2)

除了启用display_errors之外,您还可以查看错误日志。通常,运行Ubuntu + apache时,您的错误日志将位于/var/log/apache2/error_log中。要实时观察正在发生的事情,请运行类似tail -f /var/log/apache2/error_log的内容。

这有时比使用php设置更加直接。

答案 2 :(得分:2)

这里我已经,但是我找到了解决方法。

对于我写的脚本,我创建了第二个脚本,其中包含ini_set()指令,后面是我真正正在处理的脚本的包含。

To with,这是test_run.php

<?php

ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);

include('./my_script.php');

?>

答案 3 :(得分:-1)

试试error_reporting(E_ALL);。或docs