Deploy Redmine to VPS by Rails way in Ubuntu 14.04
前言
Redmine 是一套以 Ruby 為基底的專案管理網頁應用程式。而且正好就是使用 Ruby on Rails 開發的。所以如果你是 Rails 工程師,使用一般部屬 Rails 專案的方式就可將 Redmine 架起來。
本文記錄下來的方法,是我覺得最簡單,並且沒有副作用的架設方法。如果你要架設的不是 Redmine ,而是其他的 Rails 專案,也同樣適用。
本文採用的環境:
OS: Ubuntu 14.04
VPS: Digital Ocean
在 Ubuntu 創造新的使用者
Linux 是非常嚴謹的系統,不同資料夾放的東西都有其規範。而 root 帳號在 Linux 系統中是超人,可以做任何的事情。為了維持 Linux 系統的乾淨度,我們要建立一個專用的使用者 oceanttd 而不是直接使用 root 帳號來部屬。這樣在有多人要同時使用同一個 Linux 作業系統的時候會減少很多麻煩。
創造部屬的帳號 oceanttd
1 |
|
把 oceanttd 帳號加到 sudo 群組(?)
1 |
|
切換到 oceanttd 帳號
1 |
|
更新 Ubuntu apt-get 的套件
1 |
|
安裝 Mysql 或是其他資料庫
1 |
|
安裝 RVM
輸入指令安裝 RVM,過程中可能會出現一些錯誤訊息,因為我沒有預先使用 apt-get
安裝需要的套件。不過不要緊,跟著系統會告訴哪些還沒裝好,並且會給你安裝的指令,跟著系統指示很快的就可以完成。
1 |
|
重新登入 vps,輸入 rvm -v
查看 rvm 是否有裝好。
在 RVM 中安裝 Ruby
1 |
|
將 ruby 2.2.3 設定成預設的 Ruby 語言,這個動作很重要一定要做,因為預設的 Ruby 會是 Ubuntu 系統中預裝的版本,換成 RVM 的版本我們才好處理 Gem 之類的安裝問題
1 |
|
檢查系統中的 ruby 是否使用 rvm 的 ruby
輸入ruby -v
檢查版本
輸入which ruby
檢查路徑,路徑裡面有 rvm 的才是正確
安裝 Rails
記得加上 --no-ri --no-rdoc
,意思是不要裝文件,因為我們上網查就好了。可以省下很多時間。
1 |
|
把 Redmine 專案載下來,
( 如果你要部屬的是自己的專案,請 git clone 你自己的專案 )
到 Redmine 官方的下載頁面下載最新版本或是你想要的版本的 Redmine。我的版本是 3.2.0 有支援 markown。就以 3.2.0 為例好了,如果你想要用別的版本可以自行替換。
1 |
|
解壓縮
1 |
|
現在你有一個 Redmine 的 Rails 專案了。
對 Rails 專案的一些處理
bundle 一下。可能會有一些 Ubuntu 的套件沒有裝會噴錯誤。不過都還滿簡單的。
1 |
|
缺少 imagemagick 的話可以下下面指令。
1 |
|
Rails 資料庫處理
1 |
|
建之前要更新一下 config/database.yml
的內容,把 VPS Server 上的 mysql 帳號密碼寫進去。
安裝 Passenger
1 |
|
使用 Passenger 安裝 nginx
1 |
|
安装 Nginx init script
1 |
|
開機自動啟動
1 |
|
(內容來自 ruby china 文尾有連結)
設定 nginx.conf
打開 nginx.conf
1 |
|
1 |
|
重新啟動 Nginx
1 |
|
到 Rails project 下重啟 nginx
1 |
|
大功告成,現在你應該可以透過你的 server ip,連接到你架設的 Redmine 上了^^
在過程中可能遇到的錯誤
Incomplete response received from application
打開瀏覽器看到 Incomplete response received from application
時。這時候我們可以去看看/opt/nginx/logs/error.log
。發現有以下訊息:
1 |
|
這時候我們在 secret.yml 中加入 secret_token 即可。
參考連結
Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr - GoRails
雨蒼的終端機: 如何在Ubuntu 13.04 Server上部署Ruby on Rails app
在 Ubuntu 14.04 Server 上安装部署 Ruby on Rails 应用 - Wiki » Ruby China
Blog of Ryan Bigg - Deploying a Rails application on Ubuntu: Passenger Edition