当前位置: 首页 > 知识库问答 >
问题:

生产中缺少SECRET_KEY_BASE的铁轨

何哲
2023-03-14

我有ubuntu服务器、Rails 5.0和apache Web服务器,上面还有很多站点。

当我添加新站点时,我收到一个错误“收到来自应用程序的不完整响应”

当我检查apache日志时,我看到消息:

App 14561 stderr: [ 2017-01-17 21:01:16.5804 14591/0x0000000064e100(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Rack application object (Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`) (process 14591, thread 0x0000000064e100(Worker 1)):

我的配置/机密。yml包含默认值:

secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

另外,我刚刚通过在文件中写入设置了环境变量SECRET_KEY_BASE /etc/profile

我看到than通过命令< code > echo$SECRET _ KEY _ BASE

如何修复错误从应用程序收到的响应不完整

共有3个答案

舒斯伯
2023-03-14

根据启动服务器的方式,ENV 变量可能不可见。

您是否尝试过:

SECRET_KEY_BASE='foo' rails s

有关如何启动设置了环境变量的 Rails 服务器中讨论了有关 Rails 服务器的某些讨论。

安博文
2023-03-14

尝试重新启动您的服务器,它可能需要重新启动以获取config文件中的新更改。

您的配置/secrets.yml文件还应该有:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
孙嘉
2023-03-14

首先,请注意,/etc/profile 仅在调用交互式登录 shell 时才提供源代码,因此此文件中设置的任何变量都不会由 Web 服务器守护程序在启动时运行,这就是为什么它在您的尝试中没有按预期工作的原因。

因为使用的是Apache Phusion Passenger,所以可以使用< code>mod_env的< code>SetEnv选项在Apache配置文件中设置特定于应用程序的环境变量。

否则,您可以通过读取应用服务器文件系统上的配置,从应用程序代码中设置环境变量。您可以使用类似于dotenv的gem来自动执行此模式。

有关文档参考,请参阅Phusion Passenger的文档“关于环境变量:乘客服务的应用程序”。

 类似资料:
  • 我从头开始创建了一个rails应用程序(Rails 4.1.0 ),但是我遇到了一个我无法解决的问题。我已经安装并配置了Apache乘客模块,它运行良好。每当我尝试访问虚拟主机时,都会收到错误500: secret.yml文件包含以下配置: 即使不被推荐,我还是这样做了: 但阿帕奇日志显示: 如何修复此错误?如何访问开发环境?我的意思是如何编写代码,在浏览器中进行测试,然后部署到Heroku,或者

  • 我将密钥添加到heroku配置变量中,但我仍然得到错误。 这是正确的方法吗?我忽略了秘密。我从其他渠道了解到,把这件事推给公众并不是一个好主意。 在heroku配置变量中: 在secrets.yml 我还做错了什么? 此外,如果我将密钥放入heroku的配置变量中,其他开发人员就不会看到这一点了吗?那么,这还不是一种公众行为吗?我一直想知道这个概念。

  • 我第一次在Heroku上部署我的应用时收到错误“发生了未处理的低级错误”,显示: 缺少“生产”环境,请在中设置此值。 1)默认的指定 应该已经与我的应用程序一起部署,它指定通过生产环境中的环境变量加载机密。 5)我还运行了< code>heroku ps:restart,以防应用程序需要一些额外的帮助来使环境变量设置生效 我读了以前的帖子,但过去的答案似乎是确保< code>secrets.yml

  • 当我导航到Rails生产站点时,我得到: 我看到很多解决这个错误的方法是用生成的长字符串 然而,这对我不起作用(我得到同样的错误)。我必须在< code > config/environments/production . Rb 中包含:< code>config.secret_key_base = "通过运行rake secret生成的长字符串" 来解决这个错误。 我的问题是,这是正确的方法,因

  • 我创建了一个rails 4.1.4应用程序,试图在heroku上运行,但我得到以下错误- 缺少环境的

  • 所以我正在尝试在生产中部署我的rails应用程序。当我转到该页面时,我收到500错误。当我转到我的错误日志时,我收到以下错误: 我正在运行Rails 4.1和我的配置/机密。yml看起来是这样的: 我运行耙子秘密以获取密钥,并将导出放在我的bash_profile中并采购它。我成功运行了 rake 资产:预编译。然而,我仍然不断收到这个错误。有什么想法吗? 更新:我试图更新提供的错误消息,以提供稍