Как обрабатывать переменные среды в развернутом приложении SF4

Symfony представила новый компонент Dotenv начиная с Symfony 3, который позволяет нам обрабатывать переменные среды как параметры приложения. Это выглядит очень хорошо, и это лучший способ следовать манифесту приложения 12factor.

Теперь, что касается Symfony 4, они пошли дальше, продвигая эту практику, и именно поэтому я начал использовать переменные среды через файл .env.

А потом я захотел развернуть и понял, что файл .env не должен сохраняться на сервере, поскольку он будет таким же, как файл с параметрами.yml.

Поэтому я немного покопался в документации и нашел эту статью, в которой объясняется, что мы можем напрямую создавать переменные окружения с помощью некоторых директив веб-сервера. Это отлично подходит для кода, выполняемого через FPM, но не говорит нам, как обрабатывать переменные среды, например, при выполнении команды через CLI.

Как мне этого добиться? Должен ли быть где-нибудь эквивалент файла .env? Но тогда параметры будут дублироваться?

Я приветствую любую помощь;)

1 ответ

Наконец-то было время проверить ссылку, размещеннуюНеоданом, и все там!

Поэтому для тех, кто интересуется, что делать, просто отредактируйте файл / etc / environment и добавьте свои переменные. Затем перезагрузите сервер, и все ваши процессы будут иметь доступ к этим переменным.

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

Если вам нужно более безопасное решение, я полагаю, что вы, как я уже говорил ранее, можете настроить свой веб-сервер так, чтобы он добавлял переменные окружения и экспортировал их через файл .bash_profile или .bashrc, но будьте осторожны с тем, как запустить оболочку (при развертывании приложения). например). Сложнее поддерживать и склонен к ошибкам, я бы сказал.

NB. Вы также можете быть осторожны с именами переменных, чтобы избежать коллизий.

Другие вопросы по тегам