部署 Missing `secret_key_base` for 'production' environment

bajiudongfeng · 2017年10月31日 · 最后由 pynix 回复于 2017年11月01日 · 1488 次阅读

错误如上,但是我已经设置了 SECRET_KEY_BASE

echo $SECRET_KEY_BASE

6f1cdd7d6de9cc27b3d03a296b7637f93bc7d362d4223527d4777ee1ce968614c142f2feb7bc30668ddca56879dcf5ed7e7bdfef7aee83ab5eb868cd33b4346d

为啥依然会报这个错误呢?

应该是 Rails app 没读到,你可以验证下

具体的原因很难解释,比如 Cap 部署时会把命令运行在 非登录、非交互 的环境下,对环境变量的使用的规则就会比较特殊。

通用的简单的方法我建议你用 dotenv-rails 来把环境变量注入到 Rails app 去

@jasl 非登录、非交互,这个问题我也注意到了,我的机器上有

.bashrc .profile

这两个文件,没有

.bash_profile, .bash_login

因此我在上边两个文件里边都设置了,可惜还是不行。

我来试试这个 gem。 谢谢!

哥们,你这里贴的 SECRET_KEY_BASE 是否是真的 production 的 SECRET_KEY_BASE ? 如果是记得重置线上的 SECRET_KEY_BASE,不然你就泄露了。

@hz_qiuyuanxin 感谢提醒!不过现在这个值没有被读取到。哈哈

hz_qiuyuanxin 回复

红红火火

需要 登录 后方可回复, 如果你还没有账号请 注册新账号