LoginSignup
19
19

More than 5 years have passed since last update.

Redmineを2.6から3.0に、ついでにRubyを2.1から2.2にバージョンアップしたお話

Posted at

一度、掲題のバージョンアップ作業をやったことがあるけど、久しぶりになると時間がかかったのでここにメモを残すことに・・・

環境

  • OS:Ubuntu12.04LTS
  • Gitはapt-getでインストール&バージョンアップ
  • Rubyはrbenvでインストール
  • Redmineが使用するDBはMySQL(これもapt-getで)

本題

rbenv

rbenvはGitでバージョンアップ

$cd ~/.rbenv
$git pull

ruby-buildもバージョンアップ

$cd ~/.rbenv/plugins/ruby-build
$git pull
$sudo ./install

Ruby

Rubyをrbenvでバージョンアップ。

$rbenv install 2.2.2

rbenvへの引数(インストールできるバージョン番号)は以下のコマンドで確認できる。

$rbenv install -list

新しくRubyをインストールしたのでリハッシュする。全体で使用するバージョンを2.2にする。

$rbenv rehash
$rbenv global 2.2.2

Redmine

本家サイトを参考にRedmineをアップグレード!

ステップ1 必須条件チェック

対応OSや、Rubyのバージョン、DBのバージョンはちゃんと見ておこうね。

ステップ2 バックアップ

バックアップ対象は、アップロードされたファイルとDBだけらしい。
アップロードされたファイルはfilesディレクトリにあるのでそれをコピーする。
私の場合、Redmineを/usr/local/src/redmine/redmine-2.6にインストールしているので、/usr/local/src/redmine/redmine-2.6/files/のこと。
しかし、まだファイルがアップロードされていなかったので、ここは省略。

続いて、DBのバックアップ。久しぶりの接続だったので、ユーザ名とパスワードはconfig/database.ymlからカンニング。

$mysqldump -u <username> -p <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%Y%m%d`.gz

ステップ3 アップグレード実行

Redmineはアーカイブからインストールする方法と、Subversionからインストールする方法がある。今回は後者。/usr/local/src/にインストールしているのでroot権限で実行した。

$cd /usr/local/src/redmine
$sudo svn co https://svn.redmine.org/redmine/branches/3.0-stable redmine-3.0

以前のバージョンから設定ファイルをコピーする。

$sudo cp ../redmine-2.6/config/database.yml
$sudo cp ../redmine-2.6/config/configuration.yml

次に、bundleが必要になるので、gemでインストールしておく。
gemを追加したら、rbenvをリハッシュする。

$gem install bundle
$rbenv rehash

いよいよbundleを使う。
root権限でbundleを使用すると怒られるので、redmine-3.0/とその配下の所有者を現在のユーザに変更する。

$cd /usr/local/src/redmine/
$sudo chown -R <user>:<group> redmine-3.0
$cd redmine-3.0
$bundle install --without development test

もしImageMagickをインストールしていない場合は、withoutオプションにrmagickも指定する。

$bundle install --without development test rmagick

secret_tokenを作り直す。

$rm config/initializers/secret_token.rb
$bundle exec rake generate_secret_token

ステップ4 DBアップデート

DBを新バージョン用に変更。

$bundle exec rake db:migrate RAILS_ENV=production

プラグインをインストールしていたら以下も実行する。
今回はプラグインを追加していないので省略。

$bundle exec rake redmine:plugins:migrate RAILS_ENV=production

ステップ5 お掃除

キャッシュとセッションを削除。

$bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production

Apacheとpassenger

Apacheは、www-dataユーザで起動されるので、所有者を変更する。

$cd /usr/local/src/redmine/
$sudo chown -R www-data:www-data redmine-3.0

Rubyのバージョンが変わったので、ApacheとRubyを連携するpassengerをインストールする。

$gem install passenger

Apache用のモジュールをビルドする。これに時間がかかる。

$passenger-install-apache2-module

ウィザードの内容に従って操作する。
はじめの選択肢の文字が化けていたら、!を入力する

Apacheの設定ファイルの内容が表示されるので、コピーして/etc/apache2/conf.d/passenger.confに保存する。
新バージョンのRedmineのディレクトリを表示できるように/etc/apache2/sites-enabled/001-redmineを編集する。

Apacheを再起動する。

sudo service apache2 restart

バージョン確認

再起動後、ブラウザからRedmineにアクセスし、管理者でログイン。
管理者メニューのInfomationを表示する。
各種バージョンが正しいことを確認する。

お疲れ様でした。

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19