2012年7月2日月曜日

[Java][Ruby] Redmine を Tomcat 上で実行する(JRuby on Rails)

[][] RedmineTomcat 上で実行する(JRuby on RailsAdd Star

Redmine 0.7.2 を JRuby on Rails 環境を使って Tomcat 上で動作させてみる。(Radmine を WAR ファイル化して Tomcatデプロイして実行)
使用した環境は以下のとおり。

インストール

とりあえず、JavaJRubyTomcatMySQL は事前にインストールして実行できるように設定しておく。(Redmine も適当なディレクトリ解凍しておく)
次に、JRubyRubyGems を使って以下のモジュールインストールする。
Warbler は JRuby on Rails で作成したアプリケーションを war ファイル化して、Servle Engine 上で実行するためのモジュール
実行するコマンドは以下のとおり。
>jruby -S gem install rails
>jruby -S gem install activerecord-jdbc
>jruby -S gem install activerecord-jdbcmysql-adapter
>jruby -S gem install warbler
なお、activerecord-jdbcmysql-adapter は特にインストールしなくても良さそうだが、今回はインストールすることにした。(インストールしなかった場合、config/database.yml の adapter は "jdbc" と指定することになる)
また、アダプターは activerecord-jdbc{DB名}-adapter という名称でいろいろと用意されているようなので、他 DB を使う場合は {DB名} の箇所に利用する DB の名称を指定することになる。(例: activerecord-jdbch2-adapter, activerecord-jdbcderby-adapter とか)

設定変更

RedMineアーカイブファイルを解凍したディレクトリの config/environment.rb ファイルの RAILS_GEM_VERSION を 2.1.0 に書き換える。(Rails 2.1.0 上で実行できるようにする)
config/environment.rb
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
次に、以下のコマンドを実行して、RedmineRails 環境を更新する。
>jruby -S rake rails:update

DB 作成

MySQL に redmine_development データベースを作成。
mysql>create database redmine_development;
config/database.yml.example を元に config/database.yml を作成し、JDBC を使った MySQL 用の設定を行う。
config/database.yml
development:
  adapter: jdbcmysql
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost/redmine_development
  username: root
  password:
以下のコマンドを実行して、テーブルの作成や初期データの挿入を実施する。
>jruby -S rake db:migrate

WEBrick で動作確認

WEBrick を使った Redmine の動作確認を実施する。以下のコマンドを実行して、Web ブラウザhttp://localhost:3000/アクセスし、正常に動作しているか確認。
>jruby script/server
ちなみに、ユーザー名 admin、パスワード admin で Redmineログインできる。

WAR ファイル作成

WAR ファイル化自体は warble を実行するだけでよいのだが、これだけだと activerecord-jdbcmysql-adapter や Redmine の lang ディレクトリが含まれなくなるので、これを解決するために Warbler の設定ファイルを生成して編集する。
以下のコマンドで Warbler の設定ファイルを生成。
>jruby -S warble config
生成された設定ファイル config/warble.rb に以下の内容を追加して編集。
  • config.dirs に lang を追加(メニュー表示を正しく行うため)
  • config.gems に activerecord-jdbcmysql-adapter 追加
config/warble.rb
Warbler::Config.new do |config|
  config.dirs = %w(app config lib log vendor tmp lang)
  config.gems << "activerecord-jdbcmysql-adapter"
  config.gem_dependencies = true
  config.webxml.rails.env = 'development'
end
今回は、development 用の DB しか用意していないため、config.webxml.rails.env を production から development に変更した。
以下のコマンドで war ファイルがカレントディレクトリに生成される。
>jruby -S warble

Tomcatデプロイ

生成された redmine-0.7.2.war ファイルを Tomcat の webapps ディレクトリに配置して、Tomcat を実行。

元ネタ http://d.hatena.ne.jp/fits/20080630/1214841825

0 件のコメント:

コメントを投稿