新 Zend 添加的控制器停止工作,显示新控制器的错误 500,以前的控制器工作正常


New Zend added controllers stopped working showing error 500 for New Controllers, Previous Controllers Working fine

我的 Zend 应用程序运行良好,直到今天,当我更改了一些东西(我的意思是字面上什么都没有)导致新控制器停止工作时。我已经调试了代码的每个部分,但我找不到任何关于为什么会发生这种情况的痕迹!

我以前添加的控件正在工作,并且还添加了新操作,但是新添加的控件不起作用。

错误是这样的:HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到意外情况。

像这个问题一样的情况:

Zend 错误控制器停止工作 500

任何有解决方案的身体!请回复,我用新的替换了apache,zend,php库源代码的每一点,但没有成功。

我认为您没有足够的日志记录来解决此问题。你有致命的错误处理程序吗?这是一个应该可以帮助你了解正在发生的事情(添加到Boostrap类)。基本上,它将致命错误记录到日志文件中,并向用户显示静态html页面。

/**
 * Fatal Error Catcher which runs as a registered shutdown function
 */
public static function fatalErrorCatcher() {
    $error = error_get_last();
    if ($error && (
            $error['type'] === E_ERROR ||
            $error['type'] === E_COMPILE_ERROR ||
            $error['type'] === E_CORE_ERROR ||
            $error['type'] === E_PARSE
    )) {
        // kill the buffer content, it's broken anyway
        while (ob_get_level()) {
            ob_end_clean();
        }
        // make a summary of the error
        $errorSummary = date('m/d/Y G:i:s') . ' '
            . $error['message'] . ' on file ' . $error['file'] . ':' . $error['line'] . ' URL:'
            . $_SERVER["SERVER_NAME"]
            . ($_SERVER["SERVER_PORT"] != "80" ? ":" . $_SERVER["SERVER_PORT"] : "")
            . $_SERVER["REQUEST_URI"] . "'n";
        // log the error to file
        file_put_contents('/var/log/fata-errors.log', $errorSummary, FILE_APPEND | LOCK_EX);
        // tell the user we're sorry
        header('HTTP/1.1 500 Internal Server Error');
        echo file_get_contents('/var/www/html/fail-whale.html');
    }
}

并且 您在 init 中尽早在引导程序中注册它:

register_shutdown_function(array('Bootstrap', 'fatalErrorCatcher'));