ruby-on-rails – 在rails中缺少生产secret_key_base

我最近部署了一个应用程序,并得到内部服务器错误,因为缺少生产secret_key_base。经过几个小时的测试,我设法通过两种方法解决这个问题:

方法1:

我用rake密钥生成了一个新的secret_key,并用<%= ENV [“SECRET_KEY_BASE”]%>在secrets.yml。再次部署应用程序,这一次它工作。但我认为这种方法是错误的。

方法2:

我生成了一个新的secret_key与耙的秘密,并添加到环境/ production.rb像config.secret_key_base =’d1f4810e662acf46a33960e3aa5bd0 **************************,没有更改secrets.yml(默认为production:<%= ENV [“SECRET_KEY_BASE”]%>)。再次部署应用程序,它工作正常。

我的问题:

>哪种方法是最好的?
>如果第二种方法是正确的,为什么rails在默认情况下不会在production.rb中生成secret_key_base?
>有没有其他方法来做到这一点?

我终于找到了corrent的方法。
所提到的方法都不是正确的。

正确方法:

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

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

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

现在重新启动应用程序rhc app-stop myapp和rhc应用程序启动myapp,那么你是好去。

http://stackoverflow.com/questions/23726110/missing-production-secret-key-base-in-rails

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 在rails中缺少生产secret_key_base