3

我在生产模式下运行 Play 2.4 服务器时遇到此错误:

play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:

1) Error in custom provider, @6mh5cjo5l: Configuration error
  while locating play.api.libs.CryptoConfigParser
  while locating play.api.libs.CryptoConfig

...

Caused by: play.api.PlayException: Configuration error[Application secret not set]

怎么修?

4

2 回答 2

8

默认播放模板使用以下内容:

play.crypto.secret="changeme"

application.conf其中需要更改以用于生产。Play 提供了一个实用程序来为您生成随机密钥:

./activator playGenerateSecret

然后您可以使用它填充为环境变量:

APPLICATION_SECRET=...

conf/application.conf确保以下内容:

play.crypto.secret="changeme"
play.crypto.secret=${?APPLICATION_SECRET}

正如Play 文档所解释的那样:

如果设置了这样的环境变量,则该配置中的第二行将密钥设置为来自名为 APPLICATION_SECRET 的环境变量,否则,它使密钥与前一行保持不变。

然后错误就会消失。

于 2015-06-22T13:30:25.117 回答
0

对于任何仍然可以偶然发现这个问题并且还activator没有sbt像我一样使用的人。

只需遵循 Play 2.x 页面上的文档(Play 2.4 示例

“魔术”命令是

sbt playUpdateSecret

这将生成秘密并更新您的 conf 文件。所以这个命令为我节省了很多工作和发现。

干杯。

于 2020-03-05T10:38:04.517 回答