Mina 部署 Rails (rbenv + nginx + mysql + puma)

nginx 和 mysql 环境需要事先搭好

  1. 服务器上创建用户,修改登录shell为 bash chsh deploy -s /bin/bash

  2. 添加操作机的 ssh key 到服务器上实现免密码连接

  3. 安装 rbenv (请查看官方文档)

    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
    exec $SHELL
    git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    rbenv install 2.2.3

因为 cdn 被墙,所以需要修改下载地址

find . | grep 2.2.3
vi ./.rbenv/plugins/ruby-build/share/ruby-build/2.2.3

可以顺便禁掉 rdoc

echo "gem: --no-ri --no-rdoc" > ~/.gemrc

ruby-build 依赖

apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

还要安装 bundler

gem install bundler
  1. 如果部署在非用户目录,创建目录并设置权限(如 /var/www/
    执行 mina init 并修改配置文件

  2. mina setup,然后编辑生产环境的配置文件 (如 database.yml, secrt.yml, puma.rb 等)
    执行 rake secret 生成密钥

  3. 添加服务器的 ssh key 到 git 仓库获取访问权限

  4. 数据库手动创建

    CREATE DATABASE rails_app DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字符集

ALTER DATABASE report
   CHARACTER SET utf8
   COLLATE utf8_general_ci
  1. 配置 nginx 和 puma

  2. mina deploy

Puma

# Gemfile
gem 'mina-puma', require: false

# deploy.rb
require 'mina/puma'

必须 puma.rb 中添加下面的配置才能够通过 mina 来重启 puma

state_path "#{application_path}/shared/tmp/sockets/puma.state"
activate_control_app "unix://#{application_path}/shared/tmp/sockets/pumactl.sock"

参考

自定义任务

通过依赖 environment 加载 ruby 和 bundle

desc "rake db:seed"
task :seed => :environment do
    queue "cd #{deploy_to}/#{current_path}"
    queue "bundle exec rake db:seed RAILS_ENV=production"
end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CentOS用户操作 创建新用户和组useradd deploy -G admin -p deploy创建新组ad...
    王谙然阅读 8,668评论 1 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 一、利用passenger-install-nginx-module安装: 先安装passenger: gem i...
    limx阅读 3,607评论 0 2
  • 不知道多久了,现在连哭都是一场奢望,小女生的时候,痛了,累了,委屈了,毫不避讳说哭就哭,那时候的我,多随性啊!以前...
    不语_59cd阅读 1,747评论 0 0
  • 冬寒霜降小葱扬, 萝卜白菜好熬汤。 秋稻田里麻雀闹, 橙子枝头灯笼黄。 三十年岁进一步, 双亲渐老鬓如霜。 遥问故...
    萧路遥阅读 1,333评论 4 5

友情链接更多精彩内容