2014年8月22日金曜日

CentOS6にRedmine2.5をInstallして2.4から移行

centos6_redmine新しいサーバーにRedmineをインストールしてデータ移行したときの覚書。

環境: CentOS 6.5, Ruby 2.1.2, Redmine 2.5.2, MariaDB 10.0.13

 

目次

  1. バックアップ
  2. Rubyのインストール
  3. Redmineのインストール
  4. Redmineの初期設定とデータベースのテーブル作成
  5. Railsサーバー「unicorn」のインストール
  6. nginxにリバースプロキシの設定を記述
  7. データを移行

 


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::ConnectionAdapters

    class 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
    end

  end
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 >

コメントを投稿
Related Posts Plugin for WordPress, Blogger...

Blog Archives