当同时使用 Nginx、Passenger、Capistrano 和 RVM 时,我无法获取 secrets.yml
以从 ENV
读取 SECRET_KEY_BASE
.基本相同的问题this guy有。
我收到 502 错误,日志显示乘客认为未设置 SECRET_KEY_BASE。
此值在启动时设置在 /etc/environment
中。
似乎全局环境变量没有与我的 RVM 环境共享。一个快速的解决方案是使用任何 these methods但由于 Capistrano,这些将在每次新部署时被覆盖。
我可以通过使用 Capistrano 设置变量来解决这个问题,但是我必须将它存储在 repo 中以便多个开发人员能够部署并且这违背了目的。
所以问题是:如何将 SECRET_KEY_BASE 设置为 RVM 可以识别的环境变量,而无需将其存储在存储库或任何开发人员机器上?
最佳答案
有不同的方法可以根据您当前的设置设置 env 变量:
- dotenv gem
- 乘客在此建议的内容:https://www.phusionpassenger.com/library/indepth/environment_variables.html
- 在您的服务器配置文件中设置它:https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_app_env
我会选择第一种方法
关于ruby-on-rails - 使用 Capistrano 和 RVM 时无法从环境中读取 SECRET_KEY_BASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34231815/