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

Ubuntu部署Rails:Capistrano调用Puma服务找不到及Nginx启动失败

Rails部署问题修复:Capistrano Puma服务匹配与Nginx启动失败解决

一、解决Capistrano找不到Puma服务单元的问题

DigitalOcean一键Rails包默认使用/etc/systemd/system/rails.service,但Capistrano默认会寻找[项目名]_puma_production.service,需修改Capistrano配置指定服务名称:

  1. 在config/deploy.rb中添加配置,强制Capistrano使用现有服务:

    set :puma_service_name, 'rails'
    

    若需精准指定服务文件路径,可追加:

    set :puma_systemd_unit_path, '/etc/systemd/system/rails.service'
    
  2. 对齐服务配置与应用部署路径
    打开服务器上的/etc/systemd/system/rails.service,确保WorkingDirectory指向Capistrano部署的current目录,示例:

    WorkingDirectory=/home/rails/[你的项目名]/current
    

    同时确认ExecStart中的Puma启动命令、运行用户(User=rails)、环境变量(RAILS_ENV=production)与应用配置一致。

  3. 重新部署或重启服务
    执行命令让Capistrano使用指定服务完成部署:

    cap production deploy
    # 或单独重启Puma服务
    cap production puma:restart
    

二、修复Nginx启动失败(退出码1)问题

退出码1通常是配置语法错误或资源权限/路径问题,按以下步骤排查:

  1. 检查Nginx配置语法
    执行命令获取具体错误位置:

    sudo nginx -t
    

    输出会明确指出哪个配置文件的哪一行存在问题(比如路径错误、括号不匹配)。

  2. 常见错误修复

    • 路径错误:确保Nginx配置中root指向应用的public目录(示例:/home/rails/[你的项目名]/current/public),proxy_pass指向Puma的监听地址(若用Unix Socket,路径应为unix:///home/rails/[你的项目名]/shared/tmp/sockets/puma.sock)。
    • 权限问题:给应用public目录设置正确权限,让Nginx进程可访问:
      sudo chmod 755 /home/rails/[你的项目名]/current/public
      sudo chown -R rails:www-data /home/rails/[你的项目名]/current/public
      
    • 端口占用:检查80/443端口是否被其他服务占用,用以下命令排查并停止占用服务:
      sudo lsof -i :80
      sudo systemctl stop [占用服务名]
      
  3. 重启Nginx并验证状态
    修复配置后重启服务:

    sudo systemctl restart nginx
    

    用以下命令确认启动成功:

    systemctl status nginx.service
    

额外排查建议

  • 检查应用日志:查看Puma日志(/home/rails/[你的项目名]/shared/log/puma.*.log)和Rails生产日志(/home/rails/[你的项目名]/shared/log/production.log),确认应用本身能正常启动。
  • 验证环境变量:确保RAILS_ENV=production在rails.service和应用配置中正确设置,可在服务器上进入current目录执行RAILS_ENV=production rails console测试应用能否正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 01:51:24