我尝试在.bashrc
,.profile
,.bash_profile
,/etc/environment
以及/etc/defaults/nginx
中设置环境变量,但没有任何效果。只有/etc/environment
是实际响应echo $MY_VAR
输出的文件,但Rails
应用程序即使在nginx and puma
重新启动daemon-reload
其他文件后也没有选择这些变量终端没有回复(因为当我执行ssh
时,它会更新LINUX session
)。我在my_app/config
文件夹的文件中使用这些环境变量。任何人都可以告诉更好的方法来使这些变量工作。
我正在使用 Nginx , Puma , Ruby on Rails 5 , Capistrano 和 Ubuntu 18.04 即可。提前致谢
答案 0 :(得分:2)
如果您愿意使用Dotenv gem,我最近将其与.env
中的环境变量结合使用(请务必将其添加到.gitignore
)。 Dotenv的文档解释了如何进行设置。在config/application.rb
中,您需要添加Dotenv::Railtie.load
后跟YOUR_SECRECT = ENV['YOUR_SECRECT']
以及.env
中的任何其他变量。据说,如果你使用的是Capistrano,你应该append
.env
与linked_files
中的其他config/deploy.rb
一起使用,但最后我必须添加.env
手动将文件传送到我服务器上的shared
目录。然而,该设置使我的环境变量可用于config/environments/production.rb
文件。