rinald_未来往事

CentOS 6.3 x64 安装redmine2.3.0

Linux
Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。Redmine是一个有用的Scrum和敏捷的选择。 由于Redmine的设计受到Trac的较大影响,所以它们的软件包有很多相似的特征。Redmine建立在Ruby on Rails的框架之上,他可以跨平台和数据库。

Redmine 是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。

一、系统约定
操作系统:  CentOS 6.3_x64
Nginx目录:  /data/web
MySQL版本/数据库:  MySQL 5.5.20/redmine
Redmine版本:  2.3.0
本机IP:  192.168.0.249
测试域名:  redmine.fity.cn

二、redmine环境需求
注意redmine的版本:
点击在新窗口中浏览此图片
来源:http://www.redmine.org/projects/redmine/wiki/RedmineInstall
安装redmine2.3.0版本,需求表中已经详细列出.

三、环境准备
1、安装ruby with libyaml
下载最新版libyaml:http://pyyaml.org/
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar xzvf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure --prefix=/usr/local
make && make install

2、安装Ruby
下载最新版Ruby:http://www.ruby-lang.org/en/downloads/
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
tar xzvf ruby-1.9.3-p392.tar.gz
cd ruby-1.9.3-p392
./configure --prefix=/usr/local --enable-shared --disable-install-doc --with-opt-dir=/usr/local/lib  
make && make install
安装成功后执行ruby -v可看到ruby的版本信息:
ruby 1.9.3p392 (2013-02-22 revision 39386) [i686-linux]

3、安装rubygems
如果系统中已经存在rubygems,可以通过如下方法卸载:
#ruby -e 'puts $:'  //查找rubygems安装目录
#cd /usr/local/ruby/lib/ruby/site_ruby/1.8/
#rm -rf ubygems.rb rubygems rubygems.rb
#which gem gem1.8   //查找gem包的安装目录
#rm -rf /usr/local/ruby/bin/gem

下载最新版:http://rubyforge.org/frs/?group_id=126&release_id=46730
wget http://rubyforge.org/frs/download.php/76729/rubygems-1.8.25.tgz
tar xzvf rubygems-1.8.25.tgz
cd rubygems-1.8.25
ruby setup.ruby

安装成功后执行gem -v可看到版本信息。

4、安装rake、rails和相关gems
yum install ruby-devel ruby-irb ruby-rdoc ruby-ri curl-devel ImageMagick ImageMagick-devel ImageMagick-c++-devel mysql-devel sqlite-devel
gem install rake
gem install rdoc
gem install rails   //或gem install rails -v=2.3.5
gem install sqlite3-ruby
gem install bundler
gem install rmagick
gem install mysql2   //或gem install mysql,安装mysql适配器
bundle install --without development test
可选:
gem install i18n -v=0.4.2
gem install ruby-mysql

5、安装Nginx
这里我的机器已经安装过了nginx,这里略过。

6、安装mysql
推荐5.0以上版本。这里我的机器已经安装过了mysql,这里略过。
创建Redmine数据库,执行mysql -u root -p登录mysql,在mysql>命令行中输入如以下sql代码:
create database redmine character set utf8 collate utf8_general_ci;
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'fity.cn@2013';
flush privileges;

添加一个数据库readmine,创建一个用户登录用户redmine,密码和用户名相同,并且授权访问redmine数据库。

四、redmine 2.3.0安装配置
1、redmine2.3.0安装
下载最新版:http://rubyforge.org/frs/?group_id=1850
官方帮助文档:http://www.redmine.org/projects/redmine/wiki/RedmineInstall
# svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3 /data/web
cd /data/web
cp config/database.yml.example config/database.yml  //redmine数据库配置,将config目录下的数据库配置模板复制一份
打开复制出来的database.yml文件,配置production节点的mysql登录信息:
production:  //注意这些选项:后都有一个空格
adapter: mysql
database: redmine
host: localhost
username: redmine
password: fity.cn@2013
encoding: utf8
这里可以添加socket,如:socket: /tmp/mysql3306.sock

可选操作:
由于我使用的是Mysql数据库,需要将Gemfile中的配置关于PostgreSQL的安装包注释掉,如果系统没有安装PostgreSQL而不注释掉,安装时会提示错误。编辑Gemfile文件,将如下内容注释掉,不安装PostgreSQL的相关依赖包:
#platforms :mri, :mingw do
#  group :postgresql do
#    gem "pg", ">= 0.11.0"
#  end
#
#  group :sqlite do
#    gem "sqlite3"
#  end
#end

2、生成session存储加密信息和数据表
(注意此时的目录一定要在redmine/config里,不然会出错)
rake generate_secret_token
RAILS_ENV=production rake db:migrate   //使用rake创建表

执行上面最后一句,发现安装mysql后相应位置没有mysql.sock,于是加个链接
mkdir -p /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock  //如果你的socket文件做过更改,这里要根据你本机的实际情况
这里常常会收到如下一些错误信息:
A.报错:uninitialized constant ActiveSupport::Dependencies::Mutex
  解决方法:rails和rubygems版本不匹配,rubygems降到1.3.5试试

B.报错:A key is required to write a cookie containing the session data. Use config.action_controller.session = {:key=>"_myapp_session", :secret=> "some secret phrase" } in config/environment.rb
  解决方法:rake config/initializers/session_store.rb

C.报错:The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted!
  需要安装mysql适配器,gem install mysql

D.报错:Access denied for user 'mysql'@'localhost' (using password: YES)
  解决办法:
        #mysql
        Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 2
Server version: 5.0.22-log
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
        mysql>grant all privileges on *.* to 'mysql'@'localhost' identified by 'mysql' with grant option;
        mysql>flush privileges;
        mysql>exit;

E.报错:Unknown database 'redmine'
       解决办法:创建数据库redmine
       mysql>create database redmine;


继续
RAILS_ENV=production rake redmine:load_default_data
这里会要求选择默认语言,选中文zh:
Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en] zh

这个默认设置只是在未登录时的界面语言,当用户登录后,默认语言还是英语,在My account里可以修改成其它语言。

3、启动Web服务及开机启动
添加用户组、用户及授权:
groupadd redmine  
useradd -g redmine redmine  
chown -R redmine:redmine files log tmp public plugins
chmod -R 755 files log tmp public plugins


启用WEB服务
ruby /data/web/script/rails server webrick -e production
nohup ruby /data/web/script/rails server webrick -e production &   //后台运行Redmine


如果你需要更改端口,执行:
# ruby /data/web/script/server webrick -p 9000 -e production  //这里以更改为9000为例


开启自启:
vi /etc/rc.local
/usr/local/bin/ruby /data/web/script/rails server webrick -e production


如成功可通过 http://[服务器IP]:3000/ 访问,默认的管理登录用户名和密码都为 admin。

4、更换web服务器
redmine自带的webrick太慢,特别是局域网,据说是需要解析目标地址的主机名,直接给ip不用,硬要绕一圈。
使用网上推荐的 mongrel
#vi /data/web/Gemfile
加入:gem 'mongrel','~> 1.2.0.pre2'
# bundle install
# ruby /data/web/script/rails server mongrel -e production &

本机ip为192.168.0.249,至此在本机使用http://192.168.0.249:3000 或 http://127.0.0.1:3000均能访问,但局域网其他机器仍然无法访问。
原因:防火墙屏蔽了端口3000
解决办法: 配置防火墙,开放宽口3000                
    # /sbin/iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
    # /etc/rc.d/init.d/iptables save
    # service iptables restart

常见错误:Could not find gem 'mongrel (>= 0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.
解决:Mongrel降/升级 (# gem install mongrel)
#vi /data/web/Gemfile
加入:gem 'mongrel','~> 1.2.0.pre2'
#bundle install

至此,redmine安装完成。后面需要完成redmine、apache、subversion的整合。

五、Redmine邮件的配置
修改Redmine下文件夹config中的email.yml,信息如下:
production:
  delivery_method: :smtp
  smtp_settings:
  address: mail.XXXXX
  port: 25
  domain: XXXXX.com
  # authentication: :login
  # user_name: redmine@XXXXX.com
  # password: XXXXXX
  
development:
  delivery_method: :smtp
  smtp_settings:
  address: mail.XXXXX
  port: 25
  domain: XXXXX.com
  # authentication: :login
  # user_name: redmine@XXXXX.com
  # password: XXXXXX


注意用#注销掉的那三行信息,那是邮件服务器身份验证信息,但是如果你的用户已经使用了域验证,就不需要那三行信息,像我自己用的就是内部的邮件服务器(MS Exchange),就无须身份验证的必要。如果使用的是外面邮件服务器,一般是需要的;参数设置好了,然后重启Redmine服务,在配置中设置好发送邮件的帐号,然后测试(测试功能在右下角)。

附:
1、配置nginx
gem install mongrel --pre
gem install mongrel_cluster
ln -s /usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2/bin/mongrel_rails /usr/bin/mongrel_rails

vi /usr/local/webserver/nginx/conf/vhosts/redmine.fity.cn.conf
upstream mongrel {
  server 127.0.0.1:3000;
}
# rails server
server {
  listen 80;
  server_name redmine.fity.cn;
  root /data/web;
  index index.html index.htm;
  location / {
    proxy_pass http://mongrel;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

重启Nginix就可以通过域名redmine.fity.cn访问Redmine。


2、配置Apache,在Apache配置文件中添加一个虚拟主机
<VirtualHost *:80>
       ServerName redmine.fity.cn
       ProxyPass / http://localhost:3000/
       ProxyPassReverse / http://localhost:3000/
</VirtualHost>

重启Aapche 就可以通过域名redmine.fity.cn访问Redmine。
原文作者:rinald
原文地址:http://fity.cn/post/365.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。