服务器配置
- 阿里云ECS, 1G、1CPU
- 单核环境下,可选的服务器就不多了,再加上Rails5 ActionCable,服务器就选了Puma
Patch 1手动部署
- 安装Nginx,下载源代码,略去不提
- /etc/nginx/sites-enable/下创建配置文件blog.conf
Gemfile里加上
gem ‘puma’
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?