Ruby on rails 环境变量在DigitalOcean中不起作用
我试图在Ruby on rails 环境变量在DigitalOcean中不起作用,ruby-on-rails,ubuntu,nginx,digital-ocean,puma,Ruby On Rails,Ubuntu,Nginx,Digital Ocean,Puma,我试图在.bashrc、.profile、.bash\u profile、/etc/environment以及/etc/defaults/nginx中设置环境变量,但没有任何效果。只有/etc/environment是实际响应echo$MY_VAR输出的文件,但是Rails应用程序即使在nginx和puma重新启动以及守护进程重新加载之后也没有拾取这些变量,其他文件甚至在终端中也没有响应(因为当我执行ssh时,它会更新LINUX会话)。我正在my_app/config文件夹的文件中使用这些环境变
.bashrc
、.profile
、.bash\u profile
、/etc/environment
以及/etc/defaults/nginx
中设置环境变量,但没有任何效果。只有/etc/environment
是实际响应echo$MY_VAR
输出的文件,但是Rails
应用程序即使在nginx和puma
重新启动以及守护进程重新加载之后也没有拾取这些变量,其他文件甚至在终端中也没有响应(因为当我执行ssh
时,它会更新LINUX会话
)。我正在my_app/config
文件夹的文件中使用这些环境变量。有谁能告诉我一个更好的方法使这些变量工作吗
我使用的是Nginx、Puma、Ruby-on-Rails 5、Capistrano和Ubuntu 18.04。提前感谢如果您愿意使用,我最近将它与我的环境变量保存在.env
(请确保将其添加到您的.gitignore
)。Dotenv的文档解释了如何进行设置。在config/application.rb
中,您需要添加Dotenv::Railtie.load
,然后添加your_SECRECT=ENV['your_SECRECT']
和您在.env
中拥有的任何其他变量。假设,如果您使用的是Capistrano,您应该能够附加.env
和配置/deploy.rb
中的其他链接的_文件,但我最终不得不手动将.env
文件添加到我服务器上的共享目录中。无所谓ss,该设置使我的环境变量可用于config/environments/production.rb
文件。如果您愿意使用,我最近将其与将我的环境变量保存在.env
中结合使用(请确保将其添加到.gitignore
)。Dotenv的文档解释了如何进行设置。在config/application.rb
中,您需要添加Dotenv::Railtie.load
,然后添加YOUR_SECRECT=ENV['YOUR_SECRECT']
和您在.env
中拥有的任何其他变量。假设,如果您使用的是Capistrano,您应该能够附加.env
和配置/deploy.rb
中的其他链接的_文件,但我最终不得不手动将.env
文件添加到我服务器上的共享目录中。无所谓ss,该设置使我的环境变量可用于config/environments/production.rb
文件。在将变量添加到这些文件中的任何一个后,您是否再次获取该文件的源代码:.bashrc、.profile、.bash_profile?您需要执行source~/.bash_profile
或重新启动终端会话。是的,它们对o有好处当我使用ssh
再次登录到服务器时,它们不见了,不见了意味着它们在服务器中,但不可访问。您在文件中放入了什么来设置变量?export VAR_NAME=value在向这些文件中的任何一个添加变量后,您是否再次获取了该文件的源代码:.bashrc、.profile、.bash_profile?您需要执行sSource~/.bash_profile
或重新启动终端会话。是的,我做了,它们对一个会话很好,当我再次使用ssh
登录到服务器时,它们消失了,这意味着它们在服务器中,但不可访问。您在文件中放了什么来设置变量?导出VAR_NAME=value谢谢ginnie。我现在尝试一下。但是当我已经在.gitignore中放置了.env,那么我如何在暂存服务器/产品上使用它如果你用ssh连接到你的服务器并转到你托管的应用程序中的共享目录,你可以在那里创建一个.env
文件并将你的env存储在其中。谢谢ginnie。我现在就尝试一下。但是当我已经在.gitignore中放置了.env之后en如何在暂存服务器/产品上使用它如果您通过ssh连接到服务器并转到您托管的应用程序中的共享
目录,您可以在那里创建一个.env
文件并将您的env存储在该目录中。