Мое приложение Symfony аварийно завершает работу в производственной среде, потому что не может найти WebProfilerBundle, как мне заставить его работать?

У меня есть приложение, разработанное с помощью Symfony 5, которое отлично работает в моей локальной среде (Vagrant, работающий с Laravel Homestead box), но когда я развертываю его на живом сервере, оно вылетает с пустой белой страницей и отвечает 500 Internal Server Error.

Когда я подключаюсь к серверу по SSH и вручную меняю значение переменной APP_ENV на dev с prod внутри моего файла .env, я вижу ошибку:

Попытка загрузить класс WebProfilerBundle из пространства имен Symfony Bundle WebProfilerBundle. Вы забыли инструкцию использования для другого пространства имен?

Я использую Github Actions для развертывания своего приложения, и в своем действии я устанавливаю такие зависимости PHP

— name: Install dependencies run: | export APP_ENV=prod composer install —no-dev —optimize-autoloader

Поэтому я не хочу, чтобы на моем производственном сервере зависели только разработки, отсюда и флаг —no-dev, и, если я правильно понимаю, WebProfilerBundle используется для проверки запроса в процессе разработки, поэтому он имеет отступ для использования только в среде dev.

Почему Symfony считает, что нужно загрузить этот пакет? Кроме того, я должен был настроить свои пользовательские страницы ошибок для ошибок 404 и 500 (добавление файла bundles/TwigBundle/Exception/error.html.twig в папку templates), почему не отображается моя страница пользовательских ошибок? Почему у меня пустая белая страница?

Я подозреваю, что это что-то с тем, как я развертываю (поскольку он работает на моей локальной машине).

Я устал убирать флаги из установки композитора (так что просто запускал composer install как есть), но это также привело к ошибке.

Вы можете просмотреть мои действия по развертыванию здесь </ а>. Также вот ссылка на репозиторий.

Приложение должно работать в этом домене: https://thebedechkacase.com/

Взгляните на это? stackoverflow.com/questions/58593872/   —  person Cooty    schedule 23.09.2020

why isn’t my custom error page shown? Просто предположение, но, скорее всего, потому, что эта ошибка возникает до загрузки вашей пользовательской логики страницы.   —  person Cooty    schedule 23.09.2020

Скорее всего, в вашем файле composer.json есть что-то в post-install-cmd, которое пытается использовать этот класс   —  person Cooty    schedule 23.09.2020

На ум приходят несколько вещей: Во-первых, вам очень важно знать, что полученная вами ошибка не имеет ничего общего с проблемой, с которой вы столкнулись. Вы устанавливаете приложение с флагом —no-dev, и поэтому профилировщик не устанавливается. Когда вы переключаетесь на dev env, он требуется, но еще не установлен, поэтому возникает ошибка. В вашем случае я предполагаю, что вы пропустили некоторые настройки перезаписи на своем сервере. Взгляните на это: symfony.com/doc/current/setup/web_server_configuration.html Сообщите мне, решит ли это вашу проблему   —  person Cooty    schedule 24.09.2020

@floGalen правильно объясняет, что вызывает это конкретное сообщение об ошибке. Если вы все еще застряли, подумайте о том, чтобы остаться в разработке, просто используя простую «установку композитора». Это может указать вам на настоящую проблему (проблемы) развертывания. Как только проблемы будут решены, вернитесь в исходный рабочий режим. Вы можете просто начать с проверки журналов вашего сервера.   —  person Cooty    schedule 24.09.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!