You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决bm_demo_app环境下secret_key_base缺失的启动报错?

解决Rails环境bm_demo_app启动Unicorn时secret_key_base缺失问题

问题重现

启动Unicorn服务器时抛出错误:

/home/ubuntu/.rvm/gems/ruby-2.7.4/gems/railties-6.0.6/lib/rails/application.rb:588:in `validate_secret_key_base': Missing `secret_key_base` for 'bm_demo_app' environment, set this string with `rails credentials:edit` (ArgumentError)

已尝试操作

  • 生成环境专属密钥:RAILS_ENV=bm_demo_app rake secret
  • 创建master.key(但解密默认credentials失败)
  • 创建环境专属的bm_demo_app.key和加密凭据文件

解决方案

1. 确保环境专属凭据中包含secret_key_base

执行命令编辑bm_demo_app环境的凭据:

EDITOR=nano bin/rails credentials:edit --environment=bm_demo_app

在打开的YAML文件中添加以下内容(替换为你之前生成的密钥字符串):

secret_key_base: 5d171b5b9650e29eb6bedb67fec4b937e09f3a255c2b0bdb035232089e8c70356b19ec715a5cc5816220992b23eb566854451c42d44f9c6d03b2ceb17d748d41

保存并退出,确保文件被加密保存。

2. 验证密钥文件权限与Unicorn启动参数

  • 调整bm_demo_app.key的权限,确保只有当前用户可读:
    chmod 600 config/credentials/bm_demo_app.key
    
  • 启动Unicorn时明确指定环境变量:
    RAILS_ENV=bm_demo_app bundle exec unicorn -c config/unicorn.rb
    

3. 备选方案(适合测试环境)

如果上述方法仍不生效,可直接在环境配置文件中设置密钥:

  1. 创建或打开config/environments/bm_demo_app.rb
  2. 添加以下配置:
    Rails.application.configure do
      config.secret_key_base = '5d171b5b9650e29eb6bedb67fec4b937e09f3a255c2b0bdb035232089e8c70356b19ec715a5cc5816220992b23eb566854451c42d44f9c6d03b2ceb17d748d41'
    end
    
  3. 重启Unicorn服务

问题原因说明

之前的操作仅创建了环境专属的密钥文件,但未在加密凭据中写入secret_key_base配置项,导致Rails无法读取到所需的密钥。默认凭据解密失败不影响环境专属凭据的使用,二者是独立的配置体系。

内容的提问来源于stack exchange,提问作者Suhas Shinde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:38:13