CentOS6にRedmine2.5をInstallして2.4から移行
新しいサーバーにRedmineをインストールしてデータ移行したときの覚書。
環境: CentOS 6.5, Ruby 2.1.2, Redmine 2.5.2, MariaDB 10.0.13
目次
- バックアップ
- Rubyのインストール
- Redmineのインストール
- Redmineの初期設定とデータベースのテーブル作成
- Railsサーバー「unicorn」のインストール
- nginxにリバースプロキシの設定を記述
- データを移行
1.バックアップ
phpMyAdminでエクスポートしとく
2.Rubyのインストール
公式サイトのドキュメントを参考に。
ビルドに必要なパッケージをインストール。
# yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
# yum install ImageMagick ImageMagick-devel
Ruby 2.1にも対応したらしいので最新のRuby 2.1.2をダウンロードしてインストールする。
# wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz
# tar xzvf ruby-2.1.2.tar.gz
# cd ruby-2.1.2
# ./configure --disable-install-doc
# make
# make install
bundlerのインストール。
# gem install bundler --no-rdoc --no-ri
3.Redmineのインストール
phpMyAdminでRedmine用のデータベースを作っておく。文字コードは「utf8mb4」にした。redmine専用のユーザーも作成。
Redmineをダウンロードして設置。
# cd ..
# wget http://www.redmine.org/releases/redmine-2.5.2.tar.gz
# tar xzvf redmine-2.5.2.tar.gz
# mv redmine-2.5.2 /opt/redmine
# cd /opt/redmine/
データベース接続設定
# vi config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: pass
encoding: utf8mb4
Gemfileに記載してあるパッケージ郡をインストール。
の前に、mysql-develをインストールして、環境変数PKG_CONFIG_PATHを設定しておかないと怒られる。
# yum install mysql-devel
# vi ~/.bash_profile
# for Redmine
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# source ~/.bash_profile
# echo $PKG_CONFIG_PATH
Gemパッケージをインストール。
# bundle install --without development test
4.Redmineの初期設定とデータベースのテーブル作成
シークレットトークン作成
# bundle exec rake generate_secret_token
データベースのテーブル作成
# RAILS_ENV=production bundle exec rake db:migrate
すると前の記事と同じようにutf8mb4にした弊害が出たので対応。
# vi /etc/my.cnf.d/server.cnf
# for Redmine
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
# vi config/initializers/adapt_utf8mb.rb
ActiveSupport.on_load :active_record do
module ActiveRecord::ConnectionAdaptersclass AbstractMysqlAdapter
def create_table_with_innodb_row_format(table_name, options = {})
table_options = options.reverse_merge(:options => 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC')
create_table_without_innodb_row_format(table_name, table_options) do |td|
yield td if block_given?
end
end
alias_method_chain :create_table, :innodb_row_format
endend
end
再度テーブル作成
# RAILS_ENV=production bundle exec rake db:migrate
5.Railsサーバー「unicorn」のインストール
この辺は前の記事と一緒。
インストール
# gem install unicorn
設定
# vi config/unicorn.rb
起動スクリプト。起動スクリプト内で指定する。
# vi /etc/rc.d/init.d/redmine
# chmod 755 /etc/rc.d/init.d/redmine
Gemfileに記述しないとエラーになる。
# vi Gemfile
gem "unicorn"
起動して、自動起動するようにしておく。
# /etc/rc.d/init.d/redmine start
# chkconfig --add redmine
# chkconfig redmine on
6.nginxにリバースプロキシの設定を記述
HTTPのアクセスをunicornに渡すように設定
# vi /etc/nginx/conf.d/05_redmine.conf
server {
listen 80;
server_name redmine.hoge.com;access_log /var/log/nginx/redmine.access.log;
error_log /var/log/nginx/redmine.error.log;location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }### Reverse Proxy for Redmine on Unicorn
location / {
rewrite ^/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5001;
}
}
# /etc/rc.d/init.d/nginx configtest
# /etc/rc.d/init.d/nginx reload
ブラウザでアクセスしてredmineの画面が表示出来るか確認。
7.データを移行
これも前の記事と同じ。
一度テーブルを全削除して、「1.バックアップ」で作成した移行元のテーブルをインポートする。phpMyAdminで実行したので省略。
# cd /opt/redmine/
# rake db:migrate RAILS_ENV="production"
アップロードしたファイルはfilesの下にあるので必要であるならコピーする。
キャッシュとセッションファイルのクリア
# rake tmp:cache:clear
# rake tmp:sessions:clear
configuration.ymlをコピーする。
# scp root@10.111.22.3:/opt/redmine/config/configuration.yml config/
サーバの再起動
# /etc/rc.d/init.d/redmine restart
< Related Posts >