2016年9月22日

redmineのアップグレード

Filed under: Cloud,Computing,Linux — nabecyan @ 2:56 PM

サーバのredmineを2.* から3.0にアップグレードする

前提:Ubuntu 16.04 LTS

1. ruby, rails, bundlerをアンインストール

$ apt-get remove ruby rails bundler

2. rvmをインストールする

  • 事前作業として、curlをインストールする

$ sudo apt-get install curl

  • 公開鍵の取得

$ curl -sSL https://rvm.io/mpapis.asc | gpg --import -

  • 続けてrvmをインストールする

$ curl -L https://get.rvm.io | bash -s stable --ruby

  • ~/.bashrc に下記を環境変数を追加して、読み込ませる。

$ vi ~/.bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

$ source ~/.bashrc

  • rvmのコマンドを実行し動作を確認

$ rvm -v

rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

3. rubyをインストールする

  • 下記コマンドを実行しrvmでインストール可能なリストを確認する

$ rvm list known

  • ruby2.3.0をインストールする(–defaultは、複数バージョンが混在している際にデフォルト使用するものを指定するオプション)

$ rvm install ruby-2.3.0 --default

  • 下記コマンドでインストールできたことを確認する

$ ruby -v

ruby 2.3.0p0 (2015-12-25 revision 53290) [i686-linux]

4. railsをインストールする

  • rails3からjavascriptのランタイムが必要であるため、node.jsをインストールしておく

$ sudo apt-get install nodejs

  • railsのインストール可能なバージョンを確認する

$ gem search -r rails

...

radiojs-rails (0.2.1)

radius-rails (0.0.6)

rails (5.0.0.1)

rails-3-settings (0.1.1)

rails-action-args (0.1.1)

...

  • インストールしたruby2.3.0と、これからインストールするrails(5.0.0.1)を「rails5_0_0_1」という名前のgemsetとして定義しておく

$ rvm gemset create rails5_0_0_1

$ rvm 2.3.0@rails5_0_0_1

  • railsをインストールする

$ gem install rails

  • コマンドを実行しインストールできたことを確認

$ rails -v

Rails 5.0.0.1

 5. redmineをインストールする

  • file-tail とpassengerをインストールする。

$ gem install file-tail

$ gem install passenger

  • mod_passenger をビルドする

Webサーバは Apache なので,これ向けのモジュールをビルドする。

$ passenger-install-apache2-module --auto --languages ruby

  • Apache の設定を修正する

事前準備

libapache2-mod-passenger を apt-get でインストールし、a2enmod passenger で有効化しておく

$ vi /etc/apache2/mods-aveilable/passenger.load

## modified by H.Tanabe 20160922

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so

$ vi /etc/apache2/mods-aveilable/passenger.conf

## modified by H.Tanabe 20160922

<IfModule mod_passenger.c>

PassengerRoot /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.30

PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.0/wrappers/ruby

</IfModule>

## H.Tanabe

PassengerDefaultUser www-data

RailsBaseURI /redmine

$ vi /etc/apache2/sites-aveilable/redmine.conf

<VirtualHost *:80>
  ServerName redmine.example.com:80
  ServerAdmin webmaster@example.com
  DocumentRoot /var/www/vhosts/redmine/public/

  <Directory /var/www/vhosts/redmine/public/>
    Options Indexes FollowSymLinks -MultiViews -ExecCGI
    AllowOverride All
    PassengerResolveSymlinksInDocumentRoot on
  </Directory>
</VirtualHost>

  • gem “mysql2″ をインストールする

$ gem install mysql2

  • gem “bundler” をインストールする

$ gem install bundler

$ rake generate_session_store

(in /var/lib/redmine)

Please configure your config/database.yml first

Could not find gem 'rails (= 4.2.7.1)' in any of the gem sources listed in your Gemfile or available on this machine.

Run `bundle install` to install missing gems.

エラーになるので、bundle installしてみる。

$ bundle install

$ rake generate_session_store

(in /var/lib/redmine)

Please configure your config/database.yml first

/usr/local/rvm/gems/ruby-2.3.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: key "inodot" is duplicated and overwritten on line 466

Note: The rake task generate_session_store has been deprecated, please use the replacement version generate_secret_token

  • シークレットトークンを作成する

bundle exec rake generate_secret_token

  • データベースの移行をする

$ RAILS_ENV=production bundle exec rake db:migrate

  • デフォルトデータの反映

$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Webアクセスしてもプロジェクトなどが表示されず、エラーログを確認。

config/databese.ymlがないというエラーだったので

$ ln -s /etc/redmine/default/database.yml /var/lib/redmine/config/

でシンボリックリンクを貼って

$ bundle install

で見えるように なった。

しかしながら、アップグレード前のデータを移行していないので、projectをクリックしても(当然ながら)表示エラーとなる。

$ cd /var/lib/redmine

$ bundle exec rake db:migrate RAILS_ENV=production

$ /etc/init.d/apache2 restart

でようやくWebアクセスできるようになった。

 

 

1件のコメント »

  1. 2017/8/1追記: Ubuntu 16.04 LTSのfitPC2でもアップグレードにチャレンジしてみた

    apt-get でredmineをインストールするが、rubyのインストールでエラーになったので調べたら

      $ add-apt-repository -y ppa:brightbox/ruby-ng

    でレポジトリを追加する必要があった。

    でもって、redmine3のインストール後、バックアップしてあったMysqlデータベースと/var/lib/redmine/default/filesをレストア。

    $ sudo zcat redminedb_*.dump.gz | mysql -u root -pパスワード redmine_default
    $ cp -Rfua [backup_directory]/files /var/lib/redmine/default/
    $ emacs -nw /etc/redmine/default/database.yml

    production:

      adapter: mysql2

    #  adapter: mysql

      database: redmine_default

      host: localhost

      port: 

      username: redmine/instance

      password: redmine

      encoding: utf8

    $ /etc/init.d/apache2 restart

    とここまでやったんだけど、うまくいかない。

    Webで調べてみたら、

    $ bundle exec rake db:migrate RAILS_ENV=production

    が必要っぽかったので、実行。それでもNG。

    /var/log/redmine/default/production.log  をみると、データベースをcreateしようして失敗してるっぽい。そこで phpmyadmin で該当のデータベーステーブルを削除して、migrateを繰り返すこと10回近く。やっとRedmineの画面が正常表示された。

    コメント by nabecyan — 2017年8月1日 @ 6:09 PM

RSS feed for comments on this post. TrackBack URL

Leave a comment

HTML convert time: 0.493 sec. Powered by WordPress