【问题标题】:hhvm-fastcgi is not showing warningshhvm-fastcgi 没有显示警告
【发布时间】:2014-08-05 13:56:26
【问题描述】:

我在 Nginx 中使用 HHVM 3.1.0 (rel),fastcgi 没有显示警告,但在控制台上运行 hhvm 它显示。 正常吗?

我的 php.ini:

error_reporting = E_ALL
display_errors = 1

hhvm.error_handling.call_user_handler_on_fatals = false
hhvm.error_handling.max_loop_count = 0
hhvm.error_handling.no_infinite_recursion_detection = false
hhvm.error_handling.throw_bad_type_exceptions = true
hhvm.error_handling.throw_too_many_arguments = true
hhvm.error_handling.warn_too_many_arguments = true
hhvm.error_handling.throw_missing_arguments = true
hhvm.error_handling.throw_invalid_arguments = true
hhvm.error_handling.enable_hip_hop_errors = true
hhvm.error_handling.notice_frequency = 1
hhvm.error_handling.warning_frequency = 1

hhvm.debug.full_backtrace = true
hhvm.debug.server_stack_trace = true
hhvm.debug.server_error_message = true
hhvm.debug.translate_source = true

【问题讨论】:

    标签: nginx fastcgi hhvm


    【解决方案1】:

    我也有同样的问题,stack question

    经过大量挖掘,我发现了问题。没有为 HHVM 设置 error_handler。所以你需要自己设置。

    我写了一个简单的,看起来像 PHP 的,虽然错误级别不完整

    set_error_handler(function ($errorNumber, $message, $errfile, $errline) {
        switch ($errorNumber) {
            case E_ERROR :
                $errorLevel = 'Error';
                break;
    
            case E_WARNING :
                $errorLevel = 'Warning';
                break;
    
            case E_NOTICE :
                $errorLevel = 'Notice';
                break;
    
            default :
                $errorLevel = 'Undefined';
        }
    
        echo '<br/><b>' . $errorLevel . '</b>: ' . $message . ' in <b>'.$errfile . '</b> on line <b>' . $errline . '</b><br/>';
    });
    

    【讨论】:

    • @Alex 这个答案基于HHVM 3.1,不确定您是否使用相同的版本。一切都还是一样
    猜你喜欢
    • 2015-02-04
    • 2021-05-12
    • 2014-11-14
    • 2014-05-28
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多