Redmine简介
Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具。它集成了项目管理所需的各项功能:日历、燃尽图和甘特图 以协助可视化表现项目与时间限制,问题跟踪和版本控制。此外,Redmine也可以同时处理多个项目。
Redmine 是以 Ruby on Rails 撰写的架构,它横跨多个平台与数据库,它的设计很明显是受一些类似功能软件包的Trac所影响。此外,它也是Bitnami 应用库的一部分。
安装的环境是CentOS 7.2,查看CentOS版本可以使用命令:
1 | cat /etc/redhat-release |
安装前查看Redmine版本的对应关系。
安装依赖包(Install pre-dependencies)
使用如下命令安装依赖包。
1 | yum -y install libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA |
安装Ruby(Install Ruby)
1 | cd ~/Downloads # YOUR FOLDER OF CHOICE |
如果ftp未安装,输入如下命令安装ftp。
1 | yum install -y ftp |
从FTP上获取Ruby安装文件:
1 | ftp> Anonymous # USERLOGIN |
也可以使用wget下载安装文件,此处采用此种方式,使用wget命令下载能够看到文件下载的进度,FTP方式等了许久没有响应,遂放弃,采用wget下载:
1 | wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.7-p358.tar.gz |
解压安装文件:
1 | tar zxvf ruby-1.8.7-p358.tar.gz |
安装:
1 | cd ruby-1.8.7.p358 |
编译Ruby源码需要GCC(GNU C Compiler),如果编译时提示没有安装GCC,输入如下命令安装:
1 | yum install gcc gcc-c++ kernel-devel |
安装Ruby(Install Ruby (Option 2))
1 | yum install ruby |
检查安装是否成功:
1 | ruby -v |
安装RubyGems 1.4.2
RubyGems是一个方便而强大的Ruby程序包管理器(RubyGems is a package management framework for Ruby. ),Ruby的第三方插件是用gem方式来管理,非常容易发布和共享,一个简单的命令就可以安装上第三方的扩展库。特点:能远程安装包,包之间依赖关系的管理,简单可靠的卸载,查询机制,能查询本地和远程服务器的包信息,能保持一个包的不同版本,基于Web的查看接口,能查看你安装的gem的信息。更换gem源为Ruby中国的源。默认的官方源因为网络问题速度慢.
1 | #删除官方源 |
1 | wget http://production.cf.rubygems.org/rubygems/rubygems-1.4.2.tgz |
安装Ruby on Rails
安装Rails 4.2版本。
1 | gem install rails -v=4.2 |
提示错误:
1 | ERROR: Error installing rails: |
输入如下命令即可解决:
1 | yum -y install gcc mysql-devel ruby-devel rubygems |
安装完毕后输入如下命令查看版本。
1 | rails -v |
安装Redmine
下载安装包:
1 | wget http://www.redmine.org/releases/redmine-3.3.1.tar.gz |
解压缩:
1 | tar zxvf redmine-3.3.1.tar.gz |
数据库配置(Link Redmine to the Database)
1 | #登录数据库 |
Configure database.yml
1 | cd /var/www/redmine/config |
Rails配置(Rails Settings)
安装bundler:
1 | gem install bundler --verbose |
安装依赖:
1 | #切换到redmine目录 |
输出如下:
1 | [root@localhost redmine]# bundle install |
1 | #安装依赖软件 |
初始化redmine数据库:
1 | rake db:migrate RAILS_ENV=production |
启动Redmine
启动Redmine:
1 | #查找rails安装目录 |
常见问题
访问地址http://localhost:3000
时提示错误:
1 | Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml` |
Rails的安全机制需要一个秘钥。在Rails 4.x版本的时候, 秘钥的设置在RAILS_ROOT/config/secrets.yml
。在非生产环境下, 秘钥都是’明文’, ‘硬编码’, 写在secrets.yml里面的。这种方式会由于源代码的泄露, 造成安全问题, 所以这种方式存在安全隐患。所以Rails要求在生产环境下, 通过操作系统的环境变量来设置秘钥, 这样相对比较稳妥。
这里可以采取2种方法:
1. 自己动手, 利用linux系统的机制来设置环境变量 SECRET_KEY_BASE = XXX
2. 使用GEM dotenv-deployment帮你设置, 具体机制和方法1本质没区别。
PS: Rails产生秘钥的指令: rake secret RAILS_ENV=production
, 会产生一个秘钥。这里我选择方法2, 利用/etc/profile.d/ 下面添加脚本的方式来设置秘钥:
1 | #产生一个秘钥 |
然后刷新你的shell,echo $SECRET_KEY_BASE
, 输出成功,重新启动计算机。访问http://localhost:3000
。如果无法访问,检查防火墙是否允许3000端口,或者关闭防火墙即可。如果需要在外网访问,需要绑定地址:
1 | #参数b表示绑定(bind) |
参考资料:
Redmine on CentOS installation HOWTO