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了。