BlueXIII's Blog

热爱技术,持续学习

0%

项目管理工具Redmine的部署

什么是Redmine

Redmine是用Ruby On Rails开发的一款基于WEB的项目管理软件。
它集成了项目管理所需的各项功能:日历、甘特图、问题跟踪和版本控制,可以同时处理多个项目。

相比禅道等软件,Redmine的安装还是比较繁琐的,一方面是因为它没有一个自动化的安装脚本,另一方面主要是个人对于Ruby初次接触,需要花一些时间在Ruby的学习上。
本文仅讨论Redmine的部署方式,关于Redmine使用今后会单独写一篇博文来讲解。

相关资源

官网WIKI

主机环境

RedHat/CentOS 6.X

代理服务器配置

如果主机处于内网环境中,无法直连Internet时,需要首先配置可用的网络环境,最简单的方式是使用代理服务器。
关于代理服务器的搭建不再赘述了,可以使用srelay+polipo这样的组合,详细步骤请参考之前的一篇文章《内网主机Python3环境搭建》。

代理服务器配置好之后,我们导入两条环境变量即可。

1
2
3
export http_proxy="http://xxx.xxx.xxx.xxx:31081"
export https_proxy="http://xxx.xxx.xxx.xxx:31081"

这时wget、curl、yum等已经可以正常使用了。

安装依赖

首先使用yum安装一些基本依赖,以下只是一些参考,可以在具体编译时缺什么补什么。

1
yum -y install nano zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA

安装MySQL

这里为了省事,使用最简单的yum的方式,直接在本机安装一套MySQL。yumd源中的MySQL版本比较老旧,是5.1.73。如果时间充裕的话,建议使用源码或二进制方式进行安装。

1
yum -y install mysql mysql-server

将MySQL设置为开机自启,并手工启动服务:

1
2
chkconfig mysqld on
service mysqld start

初次运行,进行密码等安全性

1
/usr/bin/mysql_secure_installation

Disallow root login remotely这一项可以选NO

1
2
3
4
5
6
Enter current password for root (enter for none):
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

新建MySQL数据库及用户

直接在本机登录mysql,新建一个数据库及用户

1
2
3
4
mysql -uroot -p
> create database redmine_db character set utf8;
> create user 'redmine_admin'@'localhost' identified by 'your_new_password';
> grant all privileges on redmine_db.* to 'redmine_admin'@'localhost';

关闭SELinux

1
2
3
4
vi /etc/selinux/config
SELINUX=disabled

/usr/sbin/setenforce 0 立刻关闭

配置iptables

配置iptables防火墙,将3000端口打开

1
2
3
vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

重启iptables:

1
/etc/init.d/iptables restart

安装Ruby

使用RVM进行Ruby的安装。RVM是一个命令行工具,可以提供一个便捷的多版本Ruby环境的管理和切换。

1
2
curl -L https://get.rvm.io | bash
source /etc/profile.d/rvm.sh

列出已知的Ruby版本:

1
rvm list known

这里我们选择安装2.3.0:

1
rvm install 2.3.0

等待编译安装完成之后,可以查看一下版本号,确认安装成功:

1
2
ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

安装Rubygems

RubyGems简称gems,是一个用于对Ruby组件进行打包的Ruby打包系统。

1
yum -y install rubygems

下载Redmine

我们新建一个redmine用户来进行接下来的操作。首先是从官网下载redmine的安装包并解压:

1
2
3
wget http://www.redmine.org/releases/redmine-3.3.2.tar.gz
tar -zxvf redmine-3.3.2.tar.gz
mv redmine-3.3.2 redmine

配置数据库连接

从示例中复制一份database.yml出来:

1
2
cd /path/to/redmine/config
cp database.yml.example database.yml

编辑database.yml,填写刚才新建的数据库的各项参数:

1
2
3
4
5
6
7
8
9
vi database.yml

production:
adapter: mysql2
database: redmine_db
host: localhost
username: redmine_admin
password: "redmine_password"
encoding: utf8

使用Bundle设置Rails

使用Bundle安装依赖的库

1
2
3
gem install bundler
bundle install
rake generate_secret_token

初始化数据库表及数据

1
2
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

设置文件系统权限

1
2
3
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

运行

1
bundle exec rails server -b 0.0.0.0 webrick -e production -d