一度、掲題のバージョンアップ作業をやったことがあるけど、久しぶりになると時間がかかったのでここにメモを残すことに・・・
環境
- 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を表示する。
各種バージョンが正しいことを確認する。
お疲れ様でした。