Symfony 4 развертывание как производство или удаление доступа к профилировщику - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь отключить профилировщик для моей производственной среды Symfony 4. Я сделал это в config / packages / dev / web_profiler.php. Только моя панель инструментов отладки скрыта.

Однако, когда я перехожу по URL-адресу www.symfony4app.com/_profiler, я мог видеть всю информацию.

Есть ли способ, я могу полностью закрыть доступ к профилировщику на производстве?

1 Ответ

1 голос
/ 19 июня 2019

Поскольку вы говорите, что изменили свою конфигурацию в config/packages/dev/ и вступили в силу, среда вашего приложения не настроена должным образом и в настоящее время работает в среде dev, поскольку она определяет, как загружается конфигурация приложения. Из документации .

Symfony загружает файлы конфигурации в этом порядке (последние файлы можно переопределить значения, установленные в предыдущих):

config/packages/*.yaml
config/packages/<environment-name>/*.yaml
config/packages/services.yaml

Вам придется изменить переменную окружения APP_ENV, которую, в свою очередь, можно установить в файле .env (или .env.local, если он существует) или (предпочтительно) в конфигурации вашего сервера.

Файл config/bundles.php определяет, какие пакеты доступны в какой среде. Если он загружается в prod, скорее всего, у вас есть эта строка:

Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['all' => true],

Просто измените его на:

Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],

Flex обычно заботится об установке с правильной конфигурацией, но вы также можете добавить пакет с опцией composer --dev и установить с помощью --no-dev в prod.

...