代码之家  ›  专栏  ›  技术社区  ›  treyBake user1850175

symfony 4生产模式错误处理页内存耗尽

  •  4
  • treyBake user1850175  · 技术社区  · 7 年前

    我将我的项目设置为 prod 模式在 .env 除了自定义的错误页面之外,所有的东西似乎都可以工作。

    我有这个作为我的404小枝模板:

    {# templates/bundles/TwigBundle/Exception/error404.html.twig #}
    {% include 'builder/layout/header.html.twig' with {'title': '404'} %}
    
    <img src="{{ assets('img/not-found.jpeg') }}" class="img-responsive"
         id="error-not-found-img" />
    
    <div class="http-error-msg-container">
        <h1>404! Page Not Found</h1>
        <p>Don't despair, go back to <a href="{{ path('dashboard') }}">Home</a> and try again.</p>
    </div>
    
    {% include 'builder/layout/footer.html.twig' %}
    

    去一个不存在的页面(比如 /dashboard/giorgoirdjfisejf )返回空白页。所以我把这个加到我的 index.php 文件:

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(-1);
    

    为了显示错误,我得到了这个:

    致命错误:第107行/var/www/solomon/vendor/monog/monog/src/monog/handler/streamhandler.php中允许的内存大小为134217728字节(已尝试分配20480字节)

    致命错误:第1行/var/www/solomon/vendor/symfony/debug/exception/outofmemoryexception.php中允许的内存大小为134217728字节(已尝试分配32768字节)

    我不太清楚这为什么会导致错误和无法调试。 var/log/prod.log 不显示任何内容,如何解决或更好地解决,如何调试?

    更新

    我的prod/monog.yaml文件

    monolog:
        handlers:
            main:
                type: fingers_crossed
                action_level: error
                handler: nested
                excluded_404s:
                    # regex: exclude all 404 errors from the logs
                    - ^/
            nested:
                type: stream
                path: "%kernel.logs_dir%/%kernel.environment%.log"
                level: debug
            console:
                type:   console
                process_psr_3_messages: false
                channels: ["!event", "!doctrine"]
    

    这是自动生成的,我没有做任何更改

    1 回复  |  直到 6 年前
        1
  •  17
  •   Vadim Ashikhman    7 年前

    检查symfony日志文件的文件权限。看起来Monog抓到了 permission denied 异常,尝试将其写入日志并一次又一次捕获相同的错误。