Я установил свой проект в режим 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);
чтобы показать ошибки, и я получил это:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/solomon/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /var/www/solomon/vendor/symfony/debug/Exception/OutOfMemoryException.php on line 1
Я не совсем уверен, почему это вызывает ошибку и не может отлаживать. var/log/prod.log ничего не показывает, как мне разрешить или еще лучше, как отладить?
мой файл prod / monolog.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"]
это было создано автоматически, и я не внес изменений
Какой ТИП обработчика?
в вашей конфигурации yaml для монолога, какой тип обработчика журнала вы используете?
Попробуйте добавить buffer_size: 200 в конфиг обработчика






Проверьте права доступа к файлам журналов Symfony. Похоже, что monolog перехватывает исключение permission denied, пытается записать его в журнал и снова и снова обнаруживает одну и ту же ошибку.
забыл на самом деле проверить журнал ошибок, черт возьми, это показало фактическую ошибку, и я сразу ее разрешил :)
В моем случае сообщение об ошибке было почти идентичным, за исключением того, что трассировка стека всегда указывала на строку 171 в StreamHandler.php. Проблема заключалась в том, что Composer был запущен в Windows, и полученные файлы были скопированы в систему Linux. Это привело к использованию неправильного разделителя каталогов, и Symfony затем попыталась создать /var/www/html/var\log/prod.log (содержит обратную косую черту), что, очевидно, не удалось.
Поэтому обязательно запускайте Composer в той же ОС, на которой вы будете запускать приложение позже.
Он пытается зарегистрировать что-то большое, поэтому он вылетает, и это причина, по которой в вашем prod.log ничего нет. Попробуйте на своем локальном компьютере с memory_limit -1, и вы увидите, что это такое