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

nginx 和 mysql 環(huán)境需要事先搭好

  1. 服務器上創(chuàng)建用戶,修改登錄shell為 bash chsh deploy -s /bin/bash

  2. 添加操作機的 ssh key 到服務器上實現(xiàn)免密碼連接

  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. 如果部署在非用戶目錄,創(chuàng)建目錄并設置權限(如 /var/www/
    執(zhí)行 mina init 并修改配置文件

  2. mina setup,然后編輯生產環(huán)境的配置文件 (如 database.yml, secrt.yml, puma.rb 等)
    執(zhí)行 rake secret 生成密鑰

  3. 添加服務器的 ssh key 到 git 倉庫獲取訪問權限

  4. 數(shù)據(jù)庫手動創(chuàng)建

    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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • CentOS用戶操作 創(chuàng)建新用戶和組useradd deploy -G admin -p deploy創(chuàng)建新組ad...
    王諳然閱讀 3,461評論 1 4
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 一、利用passenger-install-nginx-module安裝: 先安裝passenger: gem i...
    limx閱讀 604評論 0 2
  • 不知道多久了,現(xiàn)在連哭都是一場奢望,小女生的時候,痛了,累了,委屈了,毫不避諱說哭就哭,那時候的我,多隨性?。∫郧?..
    不語_59cd閱讀 271評論 0 0
  • 冬寒霜降小蔥揚, 蘿卜白菜好熬湯。 秋稻田里麻雀鬧, 橙子枝頭燈籠黃。 三十年歲進一步, 雙親漸老鬢如霜。 遙問故...
    蕭路遙閱讀 191評論 4 5

友情鏈接更多精彩內容