这是一篇老坑,记录了刚入职公司的时候,搭建内网产品管理平台 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 | command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - |
然后会开始下载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
2gem install rake -v 12.0.0
gem install rails -v 4.2.6
数据库
mariadb
mariadb-devel 是因为后面的mysql2 adapter需要的
ImageMagick-devel 是rmagick需要的1
2yum 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
11MariaDB [(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.91
2cd /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
4cd redmine-3.2.9/
cd config
cp database.yml.example database.yml
vim database.yml
database.yml配置如下1
2
3
4
5
6
7production:
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
13server {
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。
进入Redmine的根目录
1
cd /opt/redmine-3.2.9/
解压压缩文件
1
2
3
4cp /opt/redmine_agile-1_4_6-light.zip plugins/
yum install -y unzip
cd plugins/
unzip redmine_agile-1_4_6-light.zip安装所需的gem
1
bundle install
迁移插件的数据表
1
bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production
重启remine
1
2cat /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