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;
}
}
