在CentOS 7部署Ruby on Rails

今年4月開始學(xué)習(xí)Rails,因有一些想法想用自己的雙手進行實現(xiàn),之前使過PHP開發(fā)一個旅游圖片社交項目,實現(xiàn)起來實在是漏洞百出而且框架性完全不夠?,F(xiàn)在經(jīng)過多方權(quán)衡,最終還是拋棄了開發(fā)起步以及部署時的方便快速,決定重頭學(xué)習(xí)Rails來開發(fā)現(xiàn)在的新項目。

學(xué)習(xí)的過程可以說還是快速而且愉快的,整套框架都是建立在MVC和CRUD等web應(yīng)用開發(fā)原則之上,使起來清晰簡潔。真正的問題出現(xiàn)在部署的時候......

項目及我的個人網(wǎng)站都是放在阿里云上的,主機系統(tǒng)是CentOS 7。在正式下手部署之前做了很多research,不得不說Rails的環(huán)境部署實在是紛繁復(fù)雜,光主流rails app server就有好幾個,再加上數(shù)據(jù)庫的選擇,各種組合選的讓人頭暈~長話短說,最終我選定了Nginx?作為反向代理+Unicorn?為rails app server的經(jīng)典組合來完成部署。


以下就來詳細記錄一下從零開始部署的過程以供參考:

1. 更新操作系統(tǒng)

? ? $ yum update

? ? (查看系統(tǒng)版本)

? ? $ cat /etc/redhat-release

2. 安裝EPEL software

? ? $ yum install epel-release

? ? $ yum repolist

3. 安裝一些工具和庫

? ? $ yum install curl-devel nano sqlite-devel libyaml-devel

4. 安裝RVM,安裝指定版本的Ruby

? ? $ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

? ? $ curl -L https://get.rvm.io | bash -s stable

? ? $ source /etc/profile.d/rvm.sh? #set up system environment for Ruby, 這步不可少

? ? $ rvm reload

? ? $ rvm install 2.2.1? #這里指定你想要使用的ruby版本

5. (天朝特供)把gem source改成淘寶鏡像以提高rails安裝速度

? ? $ gem source -r https://rubygems.org/

? ? $ gem source -a https://ruby.taobao.org

6. 安裝node.js 作為rails的javascript 運行環(huán)境

? ? $ yum install nodejs

7. 安裝指定版本的rails

? ? $ gem install bundler

? ? $ gem install rails -v 4.2.1

8. 安裝Nginx

? ? $ yum install nginx

9. 安裝Unicorn

? ? $ gem install unicorn

10. 創(chuàng)建一個新rails項目或者將項目從git托管平臺克隆到主機

? ? #進入項目目錄,記住項目目錄這一步很重要,牽扯到之后配置Nginx和Unicorn的成功

? ? #我將項目放在 /var 下一個新建的rails文件夾里

? ? $ cd /var

? ? $ mkdir rails

? ? $ cd /var/rails

? ? $ rails new your_project #創(chuàng)建新項目

? ? ($ git clone https://github.com/xxx/your_project.git #或者將項目用git克隆過來)

11. 附:用git更新項目代碼

? ? $ git pull https://github.com/xxx/your_project.git

12. 運行bundle install

? ? $ cd /var/rails/your_project

? ? $ bundle install --without development:test


接下來開始配置Nginx 和 Unicorn:

- 首先在rails項目的根目錄中找到文件夾config,在里面創(chuàng)建文件unicorn.rb并寫如下內(nèi)容:

unicorn.rb 文件內(nèi)容

- 然后配置Nginx與Unicorn之間的通訊

先執(zhí)行以下命令進入nginx目錄并找到nginx.conf文件

? ? $ cd /etc/nginx? #一般nginx安裝完成之后所在路徑,不熟悉linux的童鞋可以用whereis nginx命令來尋找路徑

? ? $ vi nginx.conf? #查看nginx.conf文件

進入nginx.conf文件后按 i 開始編輯,以下為所需修改的相應(yīng)內(nèi)容:

nginx.conf 文件需要修改的配置

這樣就基本大功告成了,現(xiàn)在可以啟動兩個server讓 rails 項目跑起來了~

進入rails項目目錄,然后

? ? $ RAILS_ENV=production bundle exec rake assets:precompile? #這一步不可少,不然asset pipeline不工作

接著啟動Unicorn和Nginx

? ? $ unicorn_rails -c config/unicorn.rb -D -E production

? ? $ service nginx start

不出意外,你的項目已經(jīng)在生產(chǎn)環(huán)境下愉快的跑起來了~


附上阿里云服務(wù)器推薦碼一枚:v8p4nn ?新購服務(wù)器的時候輸入推薦碼有9折優(yōu)惠哦

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

相關(guān)閱讀更多精彩內(nèi)容

  • NO.1購買域名并做域名解析 NO.2購買主機 NO.3測試主機聯(lián)通 ping x.x.x.x NO.4登錄到服務(wù)...
    youngiyang_打碼少年閱讀 1,206評論 0 16
  • (1)閱讀 我覺得假期里閱讀,我讀得非常好,因為我以前閱讀不...
    薛榕榕閱讀 315評論 0 0
  • 【一只特立獨行的豬】我讀書的習(xí)慣是把一個作家的作品都買來讀,算是認識作者的過程。認識王小波始于《沉默的大多數(shù)》;驚...
    Nikita1986閱讀 155評論 0 0
  • 一、前期準備 1.加群 (1)店主培訓(xùn)群:每周一到周六晚有培訓(xùn)課; (2)億有團隊內(nèi)部微信群:內(nèi)部不定期交流分享干...
    yeeyoo閱讀 411評論 0 0
  • 一 戀愛的第七年,楚玉與何清泉分手了,而此前不久何清泉向楚玉承諾等主演的一部青春愛情片上映后就去扯證結(jié)婚。 此時的...
    葉墩墩閱讀 2,682評論 18 34

友情鏈接更多精彩內(nèi)容