Error handling 如何显示zf2错误?

Error handling 如何显示zf2错误?,error-handling,nginx,zend-framework2,Error Handling,Nginx,Zend Framework2,我已经重新安装了我的系统,现在当zf2出现错误时,我只能在nginx错误日志、php.ini中的display_errors on和display_startup_errors on中看到页面上的错误,可能是我的php fpm设置的错误? 在zf2以外的简单php文件中,我看到了错误 将其添加到public/index.php中 error_reporting(E_ALL | E_STRICT); 您需要在配置中启用以下选项 'view_manager' => array( 'd

我已经重新安装了我的系统,现在当zf2出现错误时,我只能在nginx错误日志、php.ini中的display_errors on和display_startup_errors on中看到页面上的错误,可能是我的php fpm设置的错误?
在zf2以外的简单php文件中,我看到了错误

将其添加到public/index.php中

error_reporting(E_ALL | E_STRICT);

您需要在配置中启用以下选项

'view_manager' => array(
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
)

请记住在生产环境中关闭此选项(“显示错误”,true)现在向我显示错误

Zend framework 2将合并所有加载模块的配置,因此您需要确保已在所有模块的配置文件中将“显示异常”(如果该键存在)设置为true

'view_manager' => array(
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
)

您可以查看在application.config.php文件中加载了哪些模块

您可以将上述内容与环境检查相结合:


将其添加到顶部的public/index.php中:

$env = getenv('APP_ENV') ?: 'production';
if($env == "development") {
  error_reporting(E_ALL | E_STRICT);
  ini_set('display_errors', true);
}
并将此文件发送给您的public/.htaccess:


SetEnv“APP_ENV”“development”

在我的例子中,Zend errors和NGinX-php5 fpm是这样工作的:

'view_manager' => array(
 'template_path_stack' => array(
     'album' => __DIR__ . '/../view',
     'display_not_found_reason' => true,
     'display_exceptions'       => true,
 ),
只有我输入了
public/index.php
(@AlloVince)

没有
If(){…}

但如果只是把上面的代码,显示错误,就会给出这样的结果:

Parse error: syntax error, unexpected '}', expecting ',' or ';' in /usr/local/nginx/html/ZendSkeletonApplication/module/Album/src/Album/Controller/AlbumController.php on line 12
还有一件事!设置此代码:(@到Nong)

module.config.php
中,如下所示:

'view_manager' => array(
 'template_path_stack' => array(
     'album' => __DIR__ . '/../view',
     'display_not_found_reason' => true,
     'display_exceptions'       => true,
 ),
),

我在屏幕上获得错误日志的所有错误:

Fatal error: Uncaught exception 'Zend\View\Exception\InvalidArgumentException' with message 'Invalid path provided; must be a string, received boolean' in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php:201 Stack trace: #0 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php(149): Zend\View\Resolver\TemplatePathStack->addPath(true) #1 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ViewTemplatePathStackFactory.php(38): Zend\View\Resolver\TemplatePathStack->addPaths(Array) #2 [internal function]: Zend\Mvc\Service\ViewTemplatePathStackFactory->createService(Object(Zend\ServiceManager\ServiceManager), 'viewtemplatepat...', 'ViewTemplatePat...') #3 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(939): call_user_func(Array, Object(Zend in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 946

我没有在系统(Ubuntu14.04)中以php fpm的形式接触配置文件。

什么也没有发生,我已经尝试过了,我告诉你,报告是在php.ini中打开的,我在另一个php文件中看到的,而不是在zf2中,因为只有我有erorlog,但在更改了php.ini后页面上没有。你重新启动了nginx/apache服务吗?还有,打印一个phpinfo()请检查php.ini路径,确保您编辑的文件是正确的。我不认为这些小细节是愚蠢的,如果您通过apt get安装php fpm,您将在系统中有几个php.ini,编辑正确的是必要的。另外,请检查您是否重新启动了php5 fpm服务@Саааааааааааааааа107。这里没有人需要帮助您,所以请冷静下来,回答问题。@Cawa您在php.ini设置中遇到了错误的
错误报告
显示错误
设置('display\u errors',true)在
config/autoload/local.php
文件的开头。不要将其放在
index.php
文件中,因为这也会在您的生产环境中导致错误。或者您可以在上次加载的模块(您自己的应用程序)中将此值设置为
true
。这将凌驾于所有其他因素之上。
Fatal error: Uncaught exception 'Zend\View\Exception\InvalidArgumentException' with message 'Invalid path provided; must be a string, received boolean' in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php:201 Stack trace: #0 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php(149): Zend\View\Resolver\TemplatePathStack->addPath(true) #1 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ViewTemplatePathStackFactory.php(38): Zend\View\Resolver\TemplatePathStack->addPaths(Array) #2 [internal function]: Zend\Mvc\Service\ViewTemplatePathStackFactory->createService(Object(Zend\ServiceManager\ServiceManager), 'viewtemplatepat...', 'ViewTemplatePat...') #3 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(939): call_user_func(Array, Object(Zend in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 946