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

使用Capistrano部署Rails应用时遇MessageEncryptor错误及后续问题

Rails 7 + Capistrano 部署AWS EC2 问题求助

我正在用Capistrano将Rails 7.2.2.1(Ruby 3.3.5)应用部署到AWS EC2实例,执行本地命令bundle exec cap production deploy始终失败,过程中遇到两类错误,具体情况如下:

一、凭据加密相关错误

  • 已完成凭据文件配置:将production.key内容复制到EC2实例对应路径,同步production.yml.enc并推送到仓库,先后尝试使用master key和production key(修改linked_files指向)均无效;
  • 多次删除重建密钥和加密凭据文件:
    初始配置:
    secret_key_base: ********
    
    production:
      db_password: ********
    
    因提示production环境未找到secret_key_base,调整为:
    production:
      secret_key_base: ******
      password:  ******
    
  • 按建议在EC2实例设置RAILS_MASTER_KEY环境变量后,仍报错:ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage

二、更新后的Sprockets错误

推送代码后忘记在远程服务器拉取,拉取后出现新错误:Sprockets::ArgumentError: link_tree argument must be a directory (Sprockets::ArgumentError)

寻求上述两类错误的解决方案,或更易懂的Rails 7部署到AWS EC2的实操教程。


内容的提问来源于stack exchange,提问作者Michael Egharevba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:27:04