Rails中缺少生产secret_key_base

用户名

我最近部署了一个应用程序,由于缺少生产secret_key_base而出现内部服务器错误。经过数小时的测试,我设法通过两种方法解决了这个问题:

方法1:

我使用生成了一个新的secret_key,rake secret并将其替换为<%= ENV["SECRET_KEY_BASE"] %>in secrets.yml再次部署了该应用程序,这次可以正常工作了。但是我认为这种方法是错误的。

方法2:

我使用生成了一个新的secret_key,rake secret并将其添加到environments/production.rblike中config.secret_key_base = 'd1f4810e662acf46a33960e3aa5bd0************************,而没有更改secrets.yml(默认值为production: <%= ENV["SECRET_KEY_BASE"] %>)。再次部署该应用程序,它可以正常工作。

我的问题:

  1. 哪种方法最好?
  2. 如果第二种方法是正确的,为什么默认情况下rails不会在production.rb中生成secret_key_base?
  3. 还有其他方法可以做到吗?
用户名

我终于找到了科伦特方法。有问题的方法都不是正确的方法。

正确的方法:

我们自己应该生成一个秘密密钥(by rake secret),然后通过在命令提示符下运行以下命令来为SECRET_KEY_BASE创建一个环境变量:

rhc set-env SECRET_KEY_BASE=3dc8b0885b3043c0e38aa2e1dc64******************** -a myapp

运行此命令后,通过SSH连接到服务器并运行,env因此您应该在列表中看到SECRET_KEY_BASE。

现在重新启动您的应用程序rhc app-stop myapprhc app-start myapp,然后就可以了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Rails生产中缺少secret_key_base

Rails:如何解决“在“生产”环境中缺少secret_key_base”的问题

如何解决错误“在“生产”环境中缺少“ secret_key_base””(Rails 4.1)

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

在生产中无法识别rails secret_key_base

测试环境中Rails.application.secrets中缺少secret_key_base

在Ubuntu 18.04服务器(Rails 6.0)上缺少“生产”环境的“ secret_key_base”,尝试了多个主题

无法在Heroku上运行的Ruby on Rails 4.1.4应用程序中为生产环境设置secret_key_base

在Rails 5.2中单独使用secret_key_base吗?

Rails 4中secret_key_base的用途是什么

Rails 6.0 中的 secret_key_base 最佳实践

在Rails 4.2.2中开发和测试secret_key_base

Rails.application.credentials.dig(:secret_key_base) 在 Heroku 生产中返回 nil

rails:泄露secret_key_base有什么后果

Rails 5.2凭证:编辑不喜欢secret_key_base

生产环境缺少secret_key_base-在Heroku上托管Rails 4.1.4应用

在“开发”环境中缺少“ secret_token”和“ secret_key_base”,请在“ config / secrets.yml”中设置这些值。

在“开发”环境中缺少“ secret_token”和“ secret_key_base”,请在“ config / secrets.yml”中设置这些值

Secret_key_base无法正常工作?

我可以在没有Ruby的情况下生成Rails SECRET_KEY_BASE吗?

在Rails 6上定义secret_key_base的正确方法是什么?

部署到 Heroku 的问题:缺少“secret_key_base”和未初始化的常量帖子(NameError)

如何在AWS上生成丢失的secret_key_base

发生未处理的低级错误。“生产”环境缺少“secret_key _base”

生产环境中的 rails 变量

如何在Phoenix应用程序中设置conn.secret_key_base

RubyonRails-您必须在应用程序的配置中设置config.secret_key_base

Rails text_field_tag,生产中缺少输入类型

在生产设置上使用django提高KeyError(key)KeyError:'SECRET_KEY'