Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 环境变量在DigitalOcean中不起作用_Ruby On Rails_Ubuntu_Nginx_Digital Ocean_Puma - Fatal编程技术网

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
文件夹的文件中使用这些环境变量。有谁能告诉我一个更好的方法使这些变量工作吗


我使用的是NginxPumaRuby-on-Rails 5CapistranoUbuntu 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存储在该目录中。