这是一篇老坑,记录了刚入职公司的时候,搭建内网产品管理平台 Redmine 的过程。
记得当时因为各个组件的版本问题,折腾了整整一天,让我对运维这个工作突然心生畏惧,就像是一个下马威,所幸还是被我拿下了。

善于debug,善于搜索,是解决问题的关键。

说明

注意版本!

安装参考
https://www.cnblogs.com/colder219/p/7158294.html

模块 版本
redmine 3.2.9
ruby 2.3.3
gem 2.6.12
rails 4.2.6

环境准备

建议使用rvm 方便切换ruby版本
回想起刚开始部署redmine的时候,我还很排斥这样的版本管理工具,喜欢自己原生安装
后来遇到部署node项目后,node版本很恶心,就用了nvm来管理node的版本。

1
2
3
4
5
command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
\curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm reload
rvm install 2.3.3

然后会开始下载ruby源码包,编译,如果机器性能好点,编译会很快。
我为了复现过程,临时开了个1c/1.7G的小机器,编译的时候慢的一批

验证安装

1
2
[root@instance-1 ~]# ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]

gem版本

1
2
[root@instance-1 ~]# gem -v
2.7.7

rake和rails,安装rails需要几分钟(单核cpu会爆满,足足卡了10分钟)

1
2
gem install rake -v 12.0.0
gem install rails -v 4.2.6

数据库

mariadb
mariadb-devel 是因为后面的mysql2 adapter需要的
ImageMagick-devel 是rmagick需要的

1
2
yum install -y mariadb mariadb-server mariadb-devel ImageMagick-devel
service mariadb start

mysql的安全设置

1
mysql_secure_installation

修改数据库默认字符为utf8
在数据库配置文件/etc/my.cnf(centos7在/etc/my.cnf.d/下面)的[mysqld]下面加上

1
character-set-server=utf8

创建redmine数据库,并设置redmine账号

1
2
3
4
5
6
7
8
9
10
11
MariaDB [(none)]> create database redmine;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on redmine.* to redmine;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on redmine.* to redmine @localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> set password for redmine@localhost=password('redmine');
Query OK, 0 rows affected (0.00 sec)

redmine

http://www.redmine.org/projects/redmine/wiki/Download

其他版本
http://www.redmine.org/projects/redmine/wiki/RedmineInstall
必须要参考redmine版本对应的ruby和rail版本

下载3.2.9

1
2
cd /opt/
wget http://www.redmine.org/releases/redmine-3.2.9.tar.gz

解压

1
tar zxvf  redmine-3.2.9.tar.gz

修改数据库配置

1
2
3
4
cd redmine-3.2.9/
cd config
cp database.yml.example database.yml
vim database.yml

database.yml配置如下

1
2
3
4
5
6
7
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "redmine"
encoding: utf8

回到redmine根目录

1
cd ..

安装依赖

1
bundle install

安装可能会比较慢
这里可能会出错,但是按照上文安装了依赖的,就会很顺序,因为坑我都踩掉了 = =

初始化数据库

1
rake db:migrate RAILS_ENV="production"

加载配置

1
rake redmine:load_default_data RAILS_ENV="production"

这里会让你选择语言

1
2
3
4
5
6
7
8
9
10
[root@instance-1 redmine-3.2.9]# rake redmine:load_default_data RAILS_ENV="production"


Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ====================================
Default configuration data loaded.
[root@instance-1 redmine-3.2.9]# rake redmine:load_default_data RAILS_ENV="production"

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] zh
====================================
Some configuration data is already loaded.

输入zh,回车即可

为rails生产cookie秘钥(必须)

1
rake generate_secret_token

启动redmine

使用以下命令启动,-d是以daemon模式启动 ,ruby使用绝对路径

1
/usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /opt/redmine-3.2.9/bin/rails server webrick -e production -d

启动

1
2
3
4
[root@instance-1 redmine-3.2.9]# /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /opt/redmine-3.2.9/bin/rails server webrick -e production -d
=> Booting WEBrick
=> Rails 4.2.7.1 application starting in production on http://localhost:3000
=> Run `rails server -h` for more startup options

redmine启动在localhost

你可以使用 -b指定让rails server监听在外网端口上,比如这样

1
/usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /opt/redmine-3.2.9/bin/rails server webrick -e production -b 192.168.2.110 -d

也可以使用nginx反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://localhost:3000;
}
}

浏览器访问 [ip],管理员登录口令
用户:admin
密码:admin
登录上后记得修改密码

插件

安装敏捷面板(redmine_agile)

下载地址
http://www.redmine.org/plugins/redmine_agile
会跳转至
https://www.redmineup.com/pages/plugins/agile
会要求填写邮箱,随便填个邮箱,下载链接会发到邮箱里面
安装说明可以查看
https://www.redmineup.com/pages/help/agile/installing-redmine-agile-plugin-on-linux

本地下载后,用scp把zip文件传到redmine服务器的/opt。

  1. 进入Redmine的根目录

    1
    cd /opt/redmine-3.2.9/
  2. 解压压缩文件

    1
    2
    3
    4
    cp /opt/redmine_agile-1_4_6-light.zip plugins/
    yum install -y unzip
    cd plugins/
    unzip redmine_agile-1_4_6-light.zip
  3. 安装所需的gem

    1
    bundle install
  4. 迁移插件的数据表

    1
    bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production
  5. 重启remine

    1
    2
    cat /opt/redmine-3.2.9/tmp/pids/server.pid | xargs kill -9
    /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /opt/redmine-3.2.9/bin/rails server webrick -e production -d

再登录redmine面板,发现已经有敏捷的标签了。
对于其他的插件,安装过程也大抵如此。

卸载插件

plugins目录执行如下

1
bundle exec rake redmine:plugins:migrate NAME=redmine_agile RAILS_ENV=production