【问题标题】:symfony custom error pages production environmentsymfony 自定义错误页面生产环境
【发布时间】:2016-05-29 07:30:53
【问题描述】:

我为 symfony 创建了自定义错误页面。

在开发环境中,它使用手册中的以下内容来工作:

http://localhost/app_dev.php/_error/{statusCode}

这是有效的。

但现在在生产环境中。 我用以下代码准备了生产环境:

php bin/console cache:clear --env=prod --no-debug

这不起作用,我没有得到我的自定义错误页面,而是默认页面。

我发现了一些关于 stackoverflow 的文章,但没有找到正确的解决方案。

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    如果您使用标准版,则/_error 挂载在routing_dev.yml 下。这意味着它仅在 dev 环境中可用。您可以将其从routing_dev.yml 移动到routing.yml

    # app/config/routing.yml
    _errors:
        resource: "@TwigBundle/Resources/config/routing/errors.xml"
        prefix:   /_error
    

    【讨论】:

    • 这不是问题,我已经在我的 routing.yml 中找到了。感谢您提供帮助。
    • php bin/console router:debug --env=prod 的输出是什么?
    • 名称方法方案主机路径------- -------- -------- -- ---- -------------- _twig_error_test ANY ANY ANY /_error/{code}.{_format} blog_pageNotFound ANY ANY ANY /{小路} - - - - - - - - - - - - - - - - - - - - - - - - - -------------------
    • 它应该可以工作。您是如何创建自定义错误页面的?
    • 正如 symfony 手册所解释的那样:我将 html.twig 文件放在 app/Resources/TwigBundle/views/Exception/ 目录中,并在开发环境中完全工作。在开发中我改变了 $kernel = new AppKernel('dev', true);然后它完全在开发中工作
    【解决方案2】:

    我的问题已经解决了。

    这是linux上的权限问题。

    文件/var/www/project/var/logs/prod.log 的问题可能是无法记录错误页面。奇怪的是网站的其余部分都在工作。

    错误页面正在运行。

    【讨论】:

    • 权限是什么/您将它们设置为什么?
    • 我使用了 chmod 777,我不确定这是否正确?我之前在网站的其余部分使用了 'setfacl -dR -m u:$APACHEUSER:rwX -m u:whoami:rwX project/app/cache project/app/logs'。我也必须将它用于 ......../var/logs/prod.log 吗?
    • 我不知道。认为我有同样的问题,但使用 777chmod ......明天会检查
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多