Redmine是一個基于web的項目管理軟件,用Ruby開發。它通過“項目(Project)”的形式把成員、任務(問題)、文檔、討論以及各種形式的資源組織在一起,大家參與更新任務、文檔等內容來推動項目的進度,同時系統利用時間線索(Timeline)和各種動態的報表(Report)形式來自動給成員匯報項目進度。

       Redmine功能可以說是非常強大了:

  ● 多項目和子項目支持

  ● 里程碑版本跟蹤

  ● 可配置的用戶角色控制

  ● 可配置的問題追蹤系統

  ● 自動日歷和甘特圖繪制

  ● 支持 Blog 形式的新聞發布、Wiki 形式的文檔撰寫和文件管理

  ● RSS 輸出和郵件通知

  ● 每個項目可以配置獨立的 Wiki 和論壇模塊

  ● 簡單的任務時間跟蹤機制

  ● 用戶、項目、問題支持自定義屬性

  ● 支持多種版本控制系統的綁定(SVN、CVS、Git、Mercurial 和 Darcs)

  ● 支持多 LDAP 用戶認證

  ● 支持用戶自注冊和用戶激活

  ● 多語言支持(已經內置了zh簡體中文)

  ● 多數據庫支持(MySQL、SQLite、PostgreSQL)

  ● 外觀模版化定制(可以使用 Basecamp 、Ruby安裝)

 

下面介紹一下在Centos 5.5下的安裝,以及和nginx結合的問題。

 

1. 先安裝一些相關庫

yum groupinstall "Development Tools"
yum install zlib-devel wget openssl-devel pcre pcre-devel make gcc gcc-c++ curl-devel

 

2. 既然是ruby寫的,ruby總是要安裝的了,ruby最新的是1.9.x版了,但是最新的redmine 1.1版也只是支持ruby1.8版,所以要安裝ruby 1.8.x
wget ftp://ftp.ruby-lang.org//pub/ruby/ruby-1.8.7-p334.tar.gz
tar -xvzf ruby-1.8.7-p334.tar.gz
cd ruby-1.8.7-p334

./configure
make -j3
make install

 

3. 安裝rubygems,這個東東應該類似perl的module了,我是這么理解的。

wget http://production.cf.rubygems.org/rubygems/rubygems-1.5.1.tgz
tar -zxvf rubygems-1.5.1.tgz
cd rubygems-1.5.1/
ruby setup.rb

 

4. 用gem安裝一些redmine運行所需的庫
gem install rails
gem update --system
gem install rake rack
gem install i18n
gem install RedCloth
gem install fastthread --no-rdoc --no-ri
gem install mysql --no-rdoc --no-ri -- --with-mysql-dir=/usr/bin --with-mysql-lib=/usr/lib/mysql --with-mysql-include=/usr/include/mysql

 

5. 安裝passenger,passenger是apache或nginx的一個模塊,可以理解為用于apache或nginx和rails的交互的一個proxy。
gem install passenger
passenger-install-nginx-module

 

6. 下載redmine

svn co http://redmine.rubyforge.org/svn/branches/1.1-stable redmine-1.1
cp -rf redmine-1.1 /home/httpd/redmine

 

7. 建立數據庫,我是用的mysql,redmine還支持其它的數據庫。
mysql -h192.168.1.24 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 169105
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database redmine character set utf8;
Query OK, 1 row affected (0.03 sec)

mysql> quit
Bye

8. 配置redmine
cd /home/httpd/redmine/
cp database.yml.example database.yml

修改配置文件:
vi database.yml

production:
  adapter: mysql
  database: redmine
  host: 192.168.1.24
  username: root
  password: password
  encoding: utf8
 

然后跑下:

cd ..

rake generate_session_store
rake db:migrate RAILS_ENV="production"

如果提示哪些東西的版本不對,就安裝哪些:

gem install -v=0.4.2 i18n
gem install -v=2.3.5 rails

然后再跑:
RAILS_ENV=production rake db:migrate


如果提示:
rake aborted!
undefined local variable or method `version_requirements' for #<Rails::GemDependency:0x7f1bdb0f24d8>

就:
vi /home/httpd/redmine/config/environment.rb
在開頭加入:
if Gem::VERSION >= "1.3.6"
    module Rails
        class GemDependency
            def requirement
                r = super
                (r == Gem::Requirement.default) ? nil : r
            end
        end
    end
end

啟動redmine:
ruby script/server webrick -e production &

然后可以在瀏覽器內通過http://ip:3000訪問redmine,redmine安裝就完成了。

 

9. 用nginx運行redmine

雖然上面這種方式可以運行redmine,但是非常慢,經分析主要是慢在http處理這塊,從上面的運行命令就可以看出來,redmine相當于是運行在一個用ruby寫的web server上。能不慢嘛。。。

 

所以就需要用nginx運行redmine,配置也很簡單:

vim nginx.conf

在http這塊加入:

  http {
      ...
      passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2;
      passenger_ruby /usr/bin/ruby;
      ...
  }

然后加一虛擬主機:

    server {
      listen 80;
      server_name www.yourhost.com;
      root /home/http/redmine/public;   # 注意這邊要配置redmine目錄下的public目錄
      passenger_enabled on;
   }

重啟nginx,就可以通過域名訪問redmine了。