■[Java][Ruby] Redmine を Tomcat 上で実行する(JRuby on Rails)
Redmine 0.7.2 を JRuby on Rails 環境を使って Tomcat 上で動作させてみる。(Radmine を WAR ファイル化して Tomcat にデプロイして実行)使用した環境は以下のとおり。
インストール
とりあえず、Java、JRuby、Tomcat、MySQL は事前にインストールして実行できるように設定しておく。(Redmine も適当なディレクトリに解凍しておく)次に、JRuby の RubyGems を使って以下のモジュールをインストールする。
- Rails
- ActiveRecord-JDBC
- ActiveRecord-JDBC MySQL Adapter
- Warbler
実行するコマンドは以下のとおり。
>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次に、以下のコマンドを実行して、Redmine の Rails 環境を更新する。
>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 件のコメント:
コメントを投稿