Redmineアップグレード¶
稼働中のRedmine3.xまたは4.xをアップグレードする。
公式資料は下記。これを参考にする。
http://guide.redmine.jp/RedmineUpgrade/
想定¶
- かなり更新間隔があいた状態を想定し、コンテンツは上書きせずファイル移行を行う。
- redmineは「/usr/local/redmine」で稼働中とする。異なる場合は適宜読み替える。
- WebServerはhttpdとする
- svn、gemを利用できるものとする
- gcc等コンパイルを行える環境とする
- プラグインは失敗の原因になりやすいので、可能であれば削除しておく
バックアップ¶
新データを上書きせず旧データをそのまま残すので、Webサーバを落として
コンテンツをリネームする。
- Webサーバをダウン
# systemctl stop httpd
- 旧コンテンツをリネーム
# mv /usr/local/redmine /usr/local/redmine_old
データベースをバックアップする。
- MySQLのバックアップ
# mysqldump -u root -p redmine > /var/tmp/redmine_dump.sql
新環境の構築¶
- Rubyを更新する
# wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz # tar xzf ruby-2.5.1.tar.gz # ./configure --disable-install-doc # make # make install # ruby -v 上記でインストールしたバージョンが表示されること
- SVNから最新の安定版をチェックアウトして配置する
# svn checkout http://svn.redmine.org/redmine/branches/3.4-stable redmine # mv redmine /usr/local/redmine # cd /usr/local/redmine
- 旧環境から移行する必要があるファイルをコピーする
# cp -p /usr/local/redmine_old/config/configuration.yml /usr/local/redmine/config/ # cp -p /usr/local/redmine_old/config/database.yml /usr/local/redmine/config/ # cp -Rp /usr/local/redmine_old/files /usr/local/redmine/
- bundlerを更新する
# gem update bundler # bundle install --without development test # bundle exec rake generate_secret_token # bundle update
- bundler環境のマイグレートを実行する
# bundle exec rake db:migrate RAILS_ENV=production # bundle exec rake redmine:plugins:migrate RAILS_ENV=production # bundle exec rake tmp:cache:clear RAILS_ENV=production
- マイグレートが失敗する場合
古いバージョンからの移行で「/usr/local/redmine/config/master.key」が無い?# EDITOR=vi rails credentials:edit -------------------- 表示される『secret_key_base』と文字列をコピーする 保存してconfig/master.keyが作成されることを確認する
- 表示された『secret_key_base』を以下に追加する
# vi /usr/local/redmine/config/configuration.yml -------------------- production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "example.com" rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf secret_key_base: キー文字列
- 再度マイグレートを実行する
- マイグレートが失敗する場合
- Passengerを更新する
6.x系はメモリリークが起きてうまく動作しなかったので5.x系の最新を指定する# gem uninstall passenger 一度古いpassengerをアンインストールする # gem query -ra -n "^passenger$" 利用可能なバージョンを調べる # gem install passenger -N -v=5.3.7 5.xの最新のバージョンを指定する # passenger-install-apache2-module PassengerのApache用モジュールをインストールする
- 注意
メモリを比較的多く使うので、メモリ不足で失敗していないか注意する。… … virtual memory exhausted: メモリを確保できません rake aborted!
と表示された場合メモリ確保に失敗しているので、メモリを増やすか稼働中の
デーモンなどを一時的に終了して空きメモリを増やし再度インストールを試みる。
- 注意
- コンパイル成功時に下記のような出力があるのでコピーする。
バージョンは適宜異なるので、本記載ではなく出力結果をコピーすること。Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/lib/ruby/gems/2.5.0/gems/passenger-4.0.60/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.5.0/gems/passenger-4.0.60 PassengerDefaultRuby /usr/local/bin/ruby </IfModule>
- コンパイル結果をもとに、Apacheの設定ファイルを書き換える
# vi /etc/httpd/conf.d/redmine.conf ----------------------------- RackBaseURI /redmine <Directory "/usr/local/redmine/public"> #Require all granted AllowOverride None Order allow,deny Allow from all </Directory> #### ここから、コンパイル結果を上書きする LoadModule passenger_module /usr/local/lib/ruby/gems/2.5.0/gems/passenger-4.0.60/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.5.0/gems/passenger-4.0.60 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> #### ここまで Header always unset "X-Powered-By" Header always unset "X-Runtime" PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 864000 PassengerHighPerformance on PassengerStatThrottleRate 10 PassengerSpawnMethod smart PassengerFriendlyErrorPages off RackBaseURI /redmine
- 公開ディレクトリにあるシンボリックリンクを張り替える
# ln -s /usr/local/redmine/public /var/www/redmine
- 所有者権限を変更する
# chown -R apache.apache /usr/local/redmine
- Webサーバを起動する
# systemctl start httpd
- passengerの動作を確認する
# passenger-status Version : 4.0.60 Date : 2018-04-23 12:49:25 +0900 Instance: 1372 ----------- General information ----------- Max pool size : 20 Processes : 0 Requests in top-level queue : 0 ----------- Application groups ----------- 何もインスタンスが起動していない状態が確認できること。
- ブラウザでRedmineにアクセスする。
動作に問題がなければデータベースのダンプや旧ファイルは削除していい
メニューや検索フィールドの表示が崩れた場合、Shift+F5などでキャッシュを
破棄するフルリロードを行えば正しく表示される。
以上¶