安裝 Redmine (CentOS + Apache + Ruby on Rails + Redmine)

CentOS + Apache +
Ruby on Rails + Redmine

什麼是 Redmine?根據官方文件的說明,Redmine 是一個很有彈性的專案管理網頁應用程式,使用 Ruby on Rails 框架,可以跨平台及跨資料庫,而且還是 open source。其他更詳細的特色可以參考官方文件的說明。

重點在於專案管理。之前在找類似的軟體,試用過幾個使用 PHP 語言開發的專案管理軟體,但用的不是很順手。當初是因為不熟 Ruby on Rails,所以沒有使用 Redmine。使用其他 PHP 開發的軟體專案管理軟體,可以很快的加入原本的環境中,但如果不好用 (應該是我用不習慣),很容易架設又有什麼用呢?

關於 Redmine

後來發現很多人推薦 Redmine (請自行上網搜尋),就打算先架設 Windows 版的 Redmine 來試用,其實整個設定還滿快的。這裡面分兩個部份,必須先安裝 Ruby,然後下載 Redmine ,有點忘了當初怎麼做的,照著官方說明文件做,還滿容易的,最後必須在 command-line 啟動 WEBrick 這個內建伺服器就能夠使用了。

WEBrick 是內建的網頁伺服器,因為效能的關係,只適合用來測試或私人用途。因此當最後我決定把它架設在伺服器上時,就必須來研究麻煩 (其實多安裝個幾次,熟悉了就還好) 的安裝程序。

此外, Redmine 還有個好用的功能,就是 wiki 的功能。我目前是使用 MediaWiki 在 Windows 上架設一個私人使用的 wiki,很好用,但缺點是,它不能設為隱藏(也可能我沒找到如何設定),所以如果要私人使用就無法丟到公開的網路上,而 Redmine 的每個專案都有專屬的 wiki 可用,只要把專案設為"私有",則沒有登入的人就無法看到該專案,當然也就看不到 wiki,而且以專案為主的 wiki 在查看上更為方便。

最好的管理方法應該是,在一個地方就能看到所有相關的事物,這樣才不會"跑來跑去",浪費時間又怕漏東漏西。

安裝環境及流程

我的安裝環境:
  • CentOS 6.x
  • MySQL 5.x
  • Ruby 1.9.3
  • Redmine 2.3.3
因為 WEBrick 不適合拿來使用,所以會將 Redmine 安裝在 Apache 上。安裝上最容易碰到的問題是,版本不相容或缺少安裝必要的套件等等,我在這方面花了很多時間移除重裝及找資料。這裡只會記錄我最後安裝成功的步驟 (因為已經裝完了,所以只能憑印象趕快記下來),不能完全適用您的環境及版本。

整個步驟如下:
  1. 安裝開發工具
  2. 安裝 rvm
  3. 安裝 Ruby 及 Rails
  4. 安裝 passenger
  5. 下載 Redmine
  6. 設定 Redmine.conf
  7. 安裝 MySQL
  8. 設定 MySQL
  9. 設定 Redmine 資料庫設定檔
  10. 安裝 bundler
  11. 產生 Session store secret
  12. 建立 Database schema objects
  13. 加入預設資料
  14. 檔案權限
  15. 完成,登入 Redmine

我在網路上搜尋了很多資料,留下幾個有用的教學,如下:

戰鬥開始

1. 安裝開發工具

在 CentOS 中安裝軟體會使用 yum,首先更新 yum,並安裝開發工具。
yum update

yum -y groupinstall "Development Tools"

yum -y install ntp zlib zlib-devel sqlite-devel httpd mysql-server mysql-devel curl-devel httpd-devel apr-devel apr-util-devel mlocate manlibxml2-devel libxslt-devel libffi-devel readline-devel
以 yum 開頭,總共 3 批指令,依序複製貼上執行即可。

2. 安裝 rvm

先安裝 curl ,利用它來下載 rvm,如下:
sudo yum install curl

sudo curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable

source /etc/profile.d/rvm.sh

3. 安裝 Ruby 及 Rails

rvm install 1.9.3

rvm use 1.9.3 --default

ruby --version

gem install rails
這裡是安裝 1.9.3 版,因為用 yum install ruby 只會裝 1.8.7 版,所以才使用 rvm 來安裝,另外,你也可以安裝 2.0.0 版,這是目前的最新版本。安裝完成後,將它設為預設版本,並使用 --version 來檢查安裝是否正確,最後安裝 rails 。

4. 安裝 passenger

依序執行以下兩個指令:
gem install passenger

passenger-install-apache2-module
這是用來安裝給 Apache 使用的模組。第 2 個指令會需要你按 Enter 來繼續,並請複製最後一次 Enter 之後所顯示的資料,大概的樣子如下:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p448/gems/passenger-4.0.17/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p448/gems/passenger-4.0.17
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p448/ruby
這會用來指示 Apache 去哪裡載入模組。

5. 下載 Redmine

官方下載頁面在這裡。你可以自己選擇要安裝的版本,我是安裝 2.3.3 版(剛才發現,昨天11/17日已有更新版本)。
wget http://rubyforge.org/frs/download.php/77238/redmine-2.3.4.tar.gz

tar zxvf redmine-2.3.4.tar.gz
下載之後解壓縮。提醒,你的版本可能和我下載的不同,請自行更改版本網址。
解壓後的目錄可能為 redmine-2.3.4 ,請移動到網頁目錄下,
mv redmine-2.3.4 /var/www/redmine
這樣就會移動到 /var/www/ 目錄下並更名為 redmine。

6. 設定 Redmine.conf

進入 Apache 的設定目錄
cd /etc/httpd/conf.d/

vim redmine.conf
並建立 redmine.conf,將剛才複製的那一大段 LoadModule...... 貼上,並增加虛擬主機
<VirtualHost *:80>
    ServerName redmine.<你的網域>
    ServerAdmin webmaster@<你的網域>
    DocumentRoot /var/www/redmine/public/
    RailsEnv production
    #RailsBaseURI /redmine
    ErrorLog logs/redmine_error_log

    #If you are using mod_fcgid and are going to upload files larger than
    #131072 bytes you should consider adding the following line
    #that allows to upload files up to 20 mb
    #MaxRequestLen 20971520

    <Directory "/var/www/redmine/public/">
            Options Indexes ExecCGI FollowSymLinks
            Order allow,deny
            Allow from all
            AllowOverride all
    </Directory>
</VirtualHost>
DocumentRoot 就是你的 Redmine 的安裝目錄路徑。ServerName 是你的網址,要依你的情況做調整。

7. 安裝 MySQL

yum install mysql

8. 設定 MySQL

做什麼:
  1. 建立 Redmine 資料庫
  2. 建立 redmine 使用者
  3. 設定 redmine 的權限
先執行 mysql 指令進入 MySQL,接著依序執行以下指令:
CREATE DATABASE redmine CHARACTER SET utf8;

CREATE USER 'redmine'@'localhost' IDENTIFIED BY '你的密碼';

GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

9. 設定 Redmine 資料庫設定檔

進入 /var/www/redmine/config 目錄,將 database.yml.example 複製一份為 database.yml
cp database.yml.example database.yml

vim database.yml
,接著修改內容
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "你的密碼"
encoding: utf8
這裡就是設定成前一個步驟所加入的 redmine 使用者及其密碼,如果是使用 ruby 1.8.x 的,必須把 adapter 設為 mysql,若為 1.9.x 則設為 mysql2。

接著進入 /var/www/redmine/public 將 dispatch.fcgi.example 複製一份為 dispatch.fcgi
cp dispatch.fcgi.example dispatch.fcgi
以及 htaccess.fcgi.example 複製為 htaccess.fcgi
cp htaccess.fcgi.example htaccess.fcgi

10. 安裝 bundler

gem install bundler

bundle install --without development test

11. 產生 Session store secret

rake generate_secret_token

12. 建立 Database schema objects

RAILS_ENV=production rake db:migrate

13. 加入預設資料

RAILS_ENV=production rake redmine:load_default_data
如果問你語系,可以選擇 zh_TW。

14. 檔案權限

到這裡已經算完成,但少了設定檔案權限,當你在網頁上要進入帳號設定的頁面時,就會出現錯誤,後來我查了一下,才知道必須把 redmine 目錄內的檔案權限設為 apache ,讓它能夠讀取,如下:
sudo chown -R apache:apache files log tmp plugins

sudo chmod -R 755 files log tmp plugins

15. 完成,登入 Redmine

終於大功告成,請重新啟動 Apache,
service httpd restart
這時候打開瀏覽器,輸入您所設定的虛擬主機網址,就能看到 Redmine 了 (順利的的話啦XD),登入帳號預設為
login: admin
password: admin
呼~~~打完收工,以上是在"記憶猶新"的情況下,趕快記錄下來的安裝流程,可能不完全,但基本流程差不多是這樣,請自行見招拆招吧~~
本文網址:http://blog.tonycube.com/2013/11/redmine-centos-apache-ruby-on-rails.html
Tony Blog 撰寫,轉載時請註明出處及文章連結,謝謝 😀

2 則留言

  1. 請教
    近來我也在安裝此系統,但仍然有待努力.......
    看過你的安裝流程後,有幾點想釐清
    這系統上,是否需要編輯此檔案:/var/www/redmine/config/environment.rb
    於檔案中新增:ENV['RAILS_ENV'] ||= 'production'
    另外,你是否也編輯過預設得 httpd.conf 檔案

    感謝你的資訊分享!

    回覆刪除
    回覆
    1. 我找到的做法裡面沒有動到 environment.rb ,但有關 ENV['RAILS_ENV'] ||= 'production' 這部份,在步驟 12, 13 就做到了。

      httpd.conf 完全沒動到,但是有加在 redmine.conf 中,在步驟 6 。位置在 conf.d/ 中,Apache 一樣會載入,但不用和原本的 httpd.cond 設定混在一起。

      刪除

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。