Rails应用部署

Posted 蜡笔小斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails应用部署相关的知识,希望对你有一定的参考价值。

服务器配置

  • 阿里云ECS, 1G、1CPU
  • 单核环境下,可选的服务器就不多了,再加上Rails5 ActionCable,服务器就选了Puma

Patch 1手动部署

  1. 安装nginx,下载源代码,略去不提
  2. /etc/nginx/sites-enable/下创建配置文件blog.conf

  1. Gemfile里加上 gem ‘puma’

  2. puma -e production -b unix:///tmp/blog.sock -d

PS

注意Nginx配置里的public文件夹路径问题,之前路径写成了 ~/xxxxx,悲剧了,assets死活404

问题在于启动Nginx是root用户,而项目在xxx用户目录下

Patch 2自动化部署

gem install mina

mina init

编辑生成的deploy.rb,遇到了一下几个坑

  • mina setup命令卡在ssh, 解决方法是set :term_mode, nil
  • bundle无法执行, 因为没有编辑rvm相关的配置
  • 数据库配置为空, 需要手动复制配置文件database.yml和secrets.yml
  • migration,seed 没有执行, mina这样每次替换整个文件夹的部署方式,不能用sqlite,迁移到了mysql
  • assets 404, Nginx里public路径需要改一下

#

如何自动重启puma?

以上是关于Rails应用部署的主要内容,如果未能解决你的问题,请参考以下文章

rails应用的部署

部署 Rails 应用程序时无法检测到 rake 任务

部署了两个 Rails 应用程序 - 如何更改默认应用程序?

通过 Heroku 部署 Rails 应用程序使用旧版本的 Node

Capistrano 部署 Rails 应用程序 - 如何处理长时间迁移?

删除 Rails 应用程序并将其重新部署到 heroku