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

Heroku上的“生产环境缺少secret_key_base”错误

唐星晖
2023-03-14

我第一次在Heroku上部署我的应用时收到错误“发生了未处理的低级错误”,heroku日志显示:

缺少“生产”环境secret_key_base,请在配置/机密中设置此值。

1)默认的secrets.yml指定secret_key_base:

2) 我使用rails-secret生成了一个秘密,然后通过Heroku config:set secret_KEY_BASE='(密钥)'将其添加到我的应用程序的Heroku配置中

3) heroku config显示为SECRET_KEY_BASE设置的值

4)也许最重要的是,基于关于这个错误的老问题,< code >。gitignore不包括< code>secrets.yml -这是默认设置。为Rails 5应用程序生成的gitignore。因此,< code>secrets.yml应该已经与我的应用程序一起部署,它指定通过生产环境中的环境变量加载机密。

5)我还运行了< code>heroku ps:restart,以防应用程序需要一些额外的帮助来使环境变量设置生效

我读了以前的帖子,但过去的答案似乎是确保< code>secrets.yml不包含在< code >中。gitignore,但是如前所述,这并不适用于默认的Rails 5 。gitignore

我还可以尝试什么?感谢。

编辑:当我在命令行设置配置值时,我也收到Heroku消息:

正在设置SECRET_KEY_BASE并重新启动(应用程序)...做

共有1个答案

仲孙才捷
2023-03-14

好的,我知道发生了什么。运行heroku run bash并检查部署了哪些文件很有启发性。

确实,< code>secrets.yml不在< code >中。gitignore文件,但似乎有人——可能是恶意的黑客,也可能是小淘气——将< code>secrets.yml添加到了我的全局。gitignore ()。gitignore_global),所以这个文件实际上没有被推送到Heroku。

我已经从全局 .gitignore 中删除了 secrets 文件,将开发和测试环境密钥卸载到 dotenv 进行管理,并且可以成功运行已部署的应用。

我考虑过删除该问题,但会保留它以防其他人遇到此问题,甚至是在诊断Heroku上应用程序的问题时使用heroku run bash可能会有所帮助的类似问题。

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

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

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

  • 我有ubuntu服务器、Rails 5.0和apache Web服务器,上面还有很多站点。 当我添加新站点时,我收到一个错误“收到来自应用程序的不完整响应” 当我检查apache日志时,我看到消息: 我的配置/机密。yml包含默认值: 另外,我刚刚通过在文件中写入设置了环境变量SECRET_KEY_BASE /etc/profile 我看到than通过命令< code > echo$SECRET

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

  • 我的情况很像SemiFixed:“production”环境缺少`secret_key_base`: 我的配置/秘密 我在/etc/environment中添加了一个条目,这样当我登录并键入 我得到了我用耙子秘密创建的长串。但是,对于“生产”环境,即使重置了整个计算机,我仍然收到500错误,丢失secret_key_base,在config/secrets.yml中设置此值。那么还有什么可能出错呢