无法启动 rails 5.2 应用程序 - ActiveSupport::MessageEncryptor::InvalidMessage
Non-starting rails 5.2 app - ActiveSupport::MessageEncryptor::InvalidMessage
我已经部署了两个 rails 应用到 Digital Ocean,Ubuntu 18.04 with Passenger 和 Nginx。
这两个应用程序都是基于 rails 5.2.2 和 ruby 2.5.1 构建的,第二个应用程序具有相同版本的所有相同 gem。虽然第一个应用程序运行良好,但第二个应用程序无法启动。
Passenger 日志的最后一行说:
[ E 2020-08-06 22:41:56.6186 30885/T1i age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www/html/AppName_Prod/current: The application encountered the following error: ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)
我知道这与 master.key 文件有关,但它存在并且包含正确的密钥。我没有使用环境变量来存储主密钥 - 它们位于每个应用程序目录结构内的 master.key 文件中。
我已经阅读了我能找到的所有 SO post 并且 none 已经解决了我的问题。
让这两个应用程序(以及更多)在同一个 Droplet 上工作有什么建议吗?
我完全没有想法。
感谢您提供的任何帮助。
对于可能遇到同样问题的人来说,这有点欺骗性。
我试过 rails credentials:edit
并没有解决问题,但我发现该应用程序的包含文件夹归 user:user
所有,而我的另一个应用程序归 user:root
所有。
当我改变这个时,一切都开始工作了。
我希望它对某人有所帮助,因为我没有在网上的任何地方找到此信息,而且它经过了大量的反复试验。
使用ls -l
列出当前工作目录中文件夹的当前所有者,以便您进行比较。
我已经部署了两个 rails 应用到 Digital Ocean,Ubuntu 18.04 with Passenger 和 Nginx。
这两个应用程序都是基于 rails 5.2.2 和 ruby 2.5.1 构建的,第二个应用程序具有相同版本的所有相同 gem。虽然第一个应用程序运行良好,但第二个应用程序无法启动。
Passenger 日志的最后一行说:
[ E 2020-08-06 22:41:56.6186 30885/T1i age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www/html/AppName_Prod/current: The application encountered the following error: ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)
我知道这与 master.key 文件有关,但它存在并且包含正确的密钥。我没有使用环境变量来存储主密钥 - 它们位于每个应用程序目录结构内的 master.key 文件中。
我已经阅读了我能找到的所有 SO post 并且 none 已经解决了我的问题。 让这两个应用程序(以及更多)在同一个 Droplet 上工作有什么建议吗? 我完全没有想法。
感谢您提供的任何帮助。
对于可能遇到同样问题的人来说,这有点欺骗性。
我试过 rails credentials:edit
并没有解决问题,但我发现该应用程序的包含文件夹归 user:user
所有,而我的另一个应用程序归 user:root
所有。
当我改变这个时,一切都开始工作了。
我希望它对某人有所帮助,因为我没有在网上的任何地方找到此信息,而且它经过了大量的反复试验。
使用ls -l
列出当前工作目录中文件夹的当前所有者,以便您进行比较。