【问题标题】:php parse errors won't showphp解析错误不会显示
【发布时间】:2012-05-26 21:37:35
【问题描述】:

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

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

【问题讨论】:

    标签: php


    【解决方案1】:

    如果您在php.ini 中禁用display_errors,然后在您的PHP 脚本中使用ini_set() 启用它,只有在包含ini_set() 调用的行执行后才会启用它.

    解析错误发生在甚至在 PHP 脚本启动之前 -- 解析 PHP 文件时(因此称为“解析错误”名称)

    这意味着它们发生在您的 ini_set() 甚至有机会被执行之前 - 这意味着,在您的情况下,display_errors 在发生解析错误时未启用;因此,您什么也看不到。

    【讨论】:

    • 所以他们显示解析错误的唯一解决方案是在ini文件中启用它?
    • 这似乎很合乎逻辑——并且有点符合php.net/manual/en/… 上的第二个注释(上面写着“致命”,但想法就在那里)
    • 是的,我已添加(未注释)以下行,现在正在显示解析错误。 error_reporting 默认值:E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 开发价值:E_ALL 生产价值:E_ALL & ~E_DEPRECATED & ~E_STRICT
    【解决方案2】:

    我已经 几年 在这个问题得到回答后,但我找到了解决这个问题的方法。

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

    至于,这里是test_run.php

    <?php
    
    ini_set('display_errors', '1');
    ini_set('error_reporting', E_ALL);
    
    include('./my_script.php');
    
    ?>
    

    【讨论】:

    • 为此+1;使用 apache+php7 遇到这个问题,即使我设置了 .htaccess 并启用了 php_flag display_errors,但似乎这个启动得太晚了,而且我没有收到错误报告。当然,我不想在整个站点范围内启用,而只是在那个目录中启用,而这种解决方法允许我以这种方式“包装”脚本的调试版本。
    • 这真的很有帮助,你应该得到比这里更多的积分!
    • 你拯救了我的一天!
    • 我不知道我以前从未见过这种情况是怎么发生的。它可以节省时间。我知道调试不正确,但它可以节省时间。
    【解决方案3】:

    除了开启display_errors,您还可以查看错误日志。通常,运行 Ubuntu + apache,您的错误日志将位于 /var/log/apache2/error_log。要实时查看正在发生的事情,您可以运行 tail -f /var/log/apache2/error_log 之类的命令。

    这有时比使用 php 设置更简单。

    【讨论】:

    • 这个问题是关于 nginx,而不是 apache。
    【解决方案4】:

    **您必须在 php.ini 文件中启用错误显示**

    我已添加(未注释)以下行,现在正在显示解析错误。

    error_reporting 
    Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 
    Development Value: E_ALL
    Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
    

    【讨论】:

      【解决方案5】:

      试试error_reporting(E_ALL);。或docs

      【讨论】:

        猜你喜欢
        • 2010-10-30
        • 1970-01-01
        • 2012-10-25
        • 2011-04-19
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        相关资源
        最近更新 更多