环境变量在 DigitalOcean 中不起作用
Environment variables not working in DigitalOcean
我尝试在 .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 Rails 5 、Capistrano 和 Ubuntu 18.04。提前致谢
如果您愿意使用 Dotenv gem,我最近将它与将我的环境变量保存在 .env
中结合使用(请务必将其添加到您的 .gitignore
) . Dotenv 的文档解释了如何进行设置。在 config/application.rb
中,您需要添加 Dotenv::Railtie.load
,然后添加 YOUR_SECRECT = ENV['YOUR_SECRECT']
以及您在 .env
中拥有的任何其他变量。据推测,如果您使用的是 Capistrano,您应该能够 append
.env
与 config/deploy.rb
中的其他 linked_files
,但我最终不得不添加 .env
文件手动添加到我服务器上的 shared
目录。尽管如此,该设置使我的环境变量可用于 config/environments/production.rb
文件。
我尝试在 .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 Rails 5 、Capistrano 和 Ubuntu 18.04。提前致谢
如果您愿意使用 Dotenv gem,我最近将它与将我的环境变量保存在 .env
中结合使用(请务必将其添加到您的 .gitignore
) . Dotenv 的文档解释了如何进行设置。在 config/application.rb
中,您需要添加 Dotenv::Railtie.load
,然后添加 YOUR_SECRECT = ENV['YOUR_SECRECT']
以及您在 .env
中拥有的任何其他变量。据推测,如果您使用的是 Capistrano,您应该能够 append
.env
与 config/deploy.rb
中的其他 linked_files
,但我最终不得不添加 .env
文件手动添加到我服务器上的 shared
目录。尽管如此,该设置使我的环境变量可用于 config/environments/production.rb
文件。