Как обрабатывать переменные среды в развернутом приложении SF4
Symfony представила новый компонент Dotenv начиная с Symfony 3, который позволяет нам обрабатывать переменные среды как параметры приложения. Это выглядит очень хорошо, и это лучший способ следовать манифесту приложения 12factor.
Теперь, что касается Symfony 4, они пошли дальше, продвигая эту практику, и именно поэтому я начал использовать переменные среды через файл .env.
А потом я захотел развернуть и понял, что файл .env не должен сохраняться на сервере, поскольку он будет таким же, как файл с параметрами.yml.
Поэтому я немного покопался в документации и нашел эту статью, в которой объясняется, что мы можем напрямую создавать переменные окружения с помощью некоторых директив веб-сервера. Это отлично подходит для кода, выполняемого через FPM, но не говорит нам, как обрабатывать переменные среды, например, при выполнении команды через CLI.
Как мне этого добиться? Должен ли быть где-нибудь эквивалент файла .env? Но тогда параметры будут дублироваться?
Я приветствую любую помощь;)
1 ответ
Наконец-то было время проверить ссылку, размещеннуюНеоданом, и все там!
Поэтому для тех, кто интересуется, что делать, просто отредактируйте файл / etc / environment и добавьте свои переменные. Затем перезагрузите сервер, и все ваши процессы будут иметь доступ к этим переменным.
Я думаю, это самое простое решение. Единственный недостаток этого метода в том, что эти переменные доступны любому процессу / пользователю, но это нормально, насколько я понимаю.
Если вам нужно более безопасное решение, я полагаю, что вы, как я уже говорил ранее, можете настроить свой веб-сервер так, чтобы он добавлял переменные окружения и экспортировал их через файл .bash_profile или .bashrc, но будьте осторожны с тем, как запустить оболочку (при развертывании приложения). например). Сложнее поддерживать и склонен к ошибкам, я бы сказал.
NB. Вы также можете быть осторожны с именами переменных, чтобы избежать коллизий.