下載ubuntu 14.4server版安裝坤次,
裝完干凈的系統(tǒng)后步鉴,我們首先需要更新
$ sudo apt-get update
$ sudo apt-get upgrade
這兩個(gè)命令是更新服務(wù)器環(huán)境
下一步是安裝 Mysql 當(dāng)然如果你的數(shù)據(jù)庫是其他的服務(wù)器可以省去這個(gè)步驟
$ sudo apt-get install mysql-server
$ sudo apt-get install libmysqlclient-dev
下一步是調(diào)整服務(wù)器的時(shí)區(qū)
$ sudo dpkg-reconfigure tzdata
接下來進(jìn)入正題
安裝ruby前需要先安裝基本工具和組件庫
$ sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline5 libyaml-dev
建立一個(gè)專門用于部署的用戶 我的習(xí)慣是建一個(gè)用戶 apps
建立apps用戶后 記得賦予其 sudo 權(quán)限
然后我們將用戶切換到 apps
進(jìn)入ruby的安裝‘
服務(wù)器環(huán)境的ruby安裝與本地開發(fā)不同 很多人還是習(xí)慣用rvm 但有很多最佳實(shí)踐說rvm并非服務(wù)器裝ruby的首選
我的習(xí)慣是 chruby 安裝簡單 使用方便
安裝步驟 1:執(zhí)行以下命令
$ wget -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
$ tar -xzvf chruby-0.3.9.tar.gz
$ cd chruby-0.3.9/
$ sudo make install
執(zhí)行后就算裝好了
然后是要激活
在 ~/.bashrc 或者 ~/.zshrc 文件里加入以下代碼:
source /usr/local/share/chruby/chruby.sh·
這樣就算激活了 此時(shí)可以試試 chruby -v
但安裝ruby 還需要一個(gè)工具叫 ruby-install
這個(gè)跟 chruby 是不矛盾的 我的理解是 ruby-install 就是一個(gè)ruby版本的安裝工具 而chruby是ruby管家
ruby-install 跟 chruby 的安裝方法類似 也是執(zhí)行幾句命令:
$ wget -O ruby-install-0.5.0.tar.gz https://github.com/postmodern/ruby-install/archive/v0.5.0.tar.gz
$ tar -xzvf ruby-install-0.5.0.tar.gz
$ cd ruby-install-0.5.0/
$ sudo make install
裝好后揪胃,便可以使用 ruby-install 的命令來安裝 ruby的版本了
具體命令如下:
ruby-install -M http://ruby.taobao.org/mirrors/ruby/ ruby 2.2.3
這里的 -M 是選擇下載鏡像
使用淘寶鏡像基本是秒下的
但用國外鏡像進(jìn)度條基本是不動(dòng)的
完成后 試試 ruby -v 可以看到版本
后面就是安裝 rails
ruby的環(huán)節(jié)完成后 安裝以下系統(tǒng)組件:nodejs 和 nginx
gem install rails
ruby的應(yīng)用服務(wù)器 我習(xí)慣上使用 unicorn 配合 cap使用還是比較方便的
服務(wù)器的配置基本上是這些
接下來本地的配置 剛才說到gem 先說第一個(gè) capistrano 它是基本組件
使用方法:$ bundle exec cap install
這個(gè)命令會(huì)生成
這些文件
Capfile 可以直接復(fù)制
deploy 文件夾下的兩個(gè)文件 production 和 staging
分別是生產(chǎn)環(huán)境和演示環(huán)境
staging可以不用
如果有需要的話 可以另外配置服務(wù)器搭一套演示環(huán)境
一般就配 production
這個(gè)也非常簡單 就一句話 照抄現(xiàn)有代碼
接下來是 deploy.rb 文件
這是最關(guān)鍵的配置文件
首先 :application 是應(yīng)用名稱 如果你一臺(tái)服務(wù)器上要跑多個(gè)應(yīng)用 必須保證名字唯一性
:repo_url 是源代碼的 git 庫
ask :branch 這句我建議開出來
每次部署時(shí)它會(huì)問你 要部署哪個(gè)分支
接下來 是:deploy_to 表示服務(wù)器的網(wǎng)站根目錄
后面是 linked_files 和 linked_dirs 這兩個(gè)是非常關(guān)鍵的配置
簡單說就是公共目錄
你想把那些東西放在公共目錄就可以在這里配置
舉例來說 我們有些時(shí)候網(wǎng)站里會(huì)由圖片或文檔 但這些東西我們又不希望放在代碼里管理 因?yàn)楹芏鄨D片和文檔可能是用戶上傳的
所以可以放在 public 下的某個(gè)目錄里 比如 uploads
這樣一來我們就需要在 linked_dirs 中多配置一個(gè) 'public/uploads'
是這個(gè)文件夾不會(huì)因?yàn)榘姹镜牡?而導(dǎo)致訪問不到的情況
接下來 是 :chruby_ruby 這個(gè)參數(shù)是指定ruby版本的
生成的模板里是沒有的
接下來還有個(gè)部署配置
capistrano-unicorn-nginx
這個(gè)gem是幫助你再服務(wù)器上自動(dòng)建立 所有 nginx 和 unicorn 配置文件的 它是模板化操作
$ bundle exec cap production setup
這句命令會(huì)自動(dòng)建立所有服務(wù)器配置文件
接下來這句 $ bundle exec rails g capistrano:unicorn_nginx:config
是在本地生成響應(yīng)的配置模板
這兩句好了以后就是部署命令了
首先是? cap setup 會(huì)建立服務(wù)器的文件結(jié)構(gòu)
然后就是 cap production deploy
會(huì)進(jìn)行自動(dòng)化部署了