redmine 部署过程
redmin官方文档写的太烂加上不熟悉ruby搞了半天,回到家后觉得还是记录下好,希望可以帮助有需要的人,少走弯路.
版本说明
下面的版本很重要
redmine 版本 3.3 官方竟然给了个百度云盘
wget http://olvimidkv.bkt.clouddn.com/redmine-3.3.0.tar.gz
系统版本 centos7.2
ruby 版本 2.3.3
gem 版本 2.6.12
rails 版本 4.2.6
准备工作
新装系统的话就更新下吧,不是的话,就尽量不要这样更新
yum update
安装epel源
yum install epel-release
依赖
yum install curl-devel sqlite-devel libyaml-devel
开始部署
ruby yum安装版本对不上 源码安装各种报错,应该是openssl版本低 于是不折腾了 直接rvm
安装rvm及ruby
rvm 可以安装管理多个ruby版本
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh #set up system environment for Ruby, 这步不可少
rvm reload
rvm install 2.3.3
简单的使用
rvm list 查看ruby
rvm use 2.2.0 使用ruby
rvm install xxxx 安装一个版本的ruby
rvm remove xxxx 卸载一个版本的ruby
安装rails及rake
上一步安装完成之后,下面的就很简单了.
如果嫌慢可以换阿里的源
gem source -r https://rubygems.org/
gem source -a http://mirrors.aliyun.com/rubygems/
安装
gem install rake -v 12.0.0
gem install rails -v 4.2.6
安装redmine
redmine 需要用到数据库,所以先装个mysql或者meriadb(centos7默认meriadb)
修改数据库默认字符为utf8
在数据库配置文件/etc/my.cnf(centos7在/etc/my.cnf.d/下面)的[mysqld]下面加上
character-set-server=utf8
然后启动数据库,创建一个数据库 redmine
用户名密码随意
权限如下,如果你用root这个就可以忽略.
grant all on redmine.* to redmine;
grant all on redmine.* to redmine @localhost;
set password for redmine@localhost=password('redmine');
把你下载的redmie解压放到需要放的目录下面,然后进入redmine/config,下面的操作都在这个目录下
cd database.yml.example database.yml
修改内容如下,数据库名不要擅自改,无论你用的是mysql还是meriadb
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "redmine"
encoding: utf8
创建表,这一步会出现各种问题,如果按照上面的装的话,基本就没有什么问题了.
提示缺少ruby扩展,不想一个个装的话,在当前目录下
bundle install
然后
rake db:migrate RAILS_ENV="production"
载入配置
rake redmine:load_default_data RAILS_ENV="production"
这时候会提示你选择语言,输入:zh
为rails生产cookie秘钥
rake generate_secret_token
启动redmine
使用以下命令启动 -d 是把输出打印到后台,ruby使用绝对路径
/usr/local/rvm/rubies/ruby-2.3.3/bin/ruby /home/work/redmine/bin/rails server webrick -e production -d
这样会启动一个监听localhost的3000端口
可以使用
curl http://localhost:3000
检查,没问题的话,使用Nginx做个反向代理就可以了.
server {
listen 80;
server_name redmine.xxx.com;
access_log logs/redmine_access.log main;
error_log logs/redmine_error.log;
location / {
proxy_pass http://localhost:3000;
}
}