Redmineをtomcat上で動かしてみた

以前からAll-in-One eclipseを使っていたのですが、バージョンが古くなってきた(3.2)のと
そろそろ別のものも使ってみたいということでPleiades All in One をインストールしました。

Pleiadesには付属のTomcatがあるようなので、Redmineの実行を試してみます。
windows環境です。

ダウンロード

インストール

  • JRubyMySQLはインストーラでインストール
  • eclipseRedmineはそれぞれzipを解凍するだけ。eclipseのworkspaceにredmineをインポートしておいた(特に意味は無い)
  • MySQLjdbcドライバは解凍してC:\Program File直下においてclasspathを通しておく
  • railsは以下のコマンドでインストール
>jruby -S gem install rails

あとはjdbcドライバとJRuby on Railsソースコードをwar化できるWarblerなるものをインストールします。

>jruby -S gem install activerecord-jdbc
>jruby -S gem install activerecord-jdbc-adapter
>jruby -S gem install warbler

Redmineの設定を変更する

実行環境

展開したRedmineのソースファイルをいじります。
まずrailsの環境を最新化し、

>jruby -S rake rails:update

{home}/config/environment.rb ファイルのRAILS_GEM_VERSIONを自分の環境とあわせます。
自分は2.3.5でした

DB設定

{home}/config/database.yml.exampleをコピーしてdatabase.ymlを作成します。
今回はJDBCMySQLを使うので以下のように設定しました。

development:
  adapter: jdbcmysql
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost/redmine_development
  username: root
  password:

DBを作成する

MySQLにログインしてdatabase.ymlで指定したdatabaseを作成します。

>mysql create database redmine_development;

そして設定ファイルからテーブルを作成

>jruby -S rake db:migrate

が、ここで失敗。。。
こんなエラーがでました。

rake aborted!
Missing session secret. Please run 'rake config/initializers/session_store.rb' t
o generate one

(See full trace by running task with --trace)

セッションクリアしてね!ということらしいので、大人しくコマンドを実行

>jruby rake config/initializers/session_store.rb

今度はすんなりとおりました。

warの作成

warを作成すべく、warblerの設定ファイルを作成します。

>jruby -S warble config

{home}/config/warble.rb が生成されるので各種設定します。

  • config.dirsにwar化したいフォルダ構成
  • config.gemsにjdbcドライバアダプタの名前

をそれぞれ指定すれば良いようなので、以下のように編集しました。

Warbler::Config.new do |config|
  config.dirs = %w(app config lib log vendor tmp lang)
  config.gems << "activerecord-jdbc-adapter"
  config.gem_dependencies = true
  config.webxml.rails.env = 'development'
end

(dirsにlangを加え、gemsにactiverecord-jdbc-adapterを記述した)


最後にwarblerでwarを作成してtomcatのwebapps配下に置きます。

>jruby -S warble

これでtomcatを起動すればhttp;//localhost:8080/redmine-0.8.7 で
redmineが起動する・・・!


と、ここで

The driver encountered an error: cannot load Java class com.mysql.jdbc.Driver

が発生してしまいました。


原因は単純で{home}/libの下にjdbcドライバがなかったので参照できなかった様子。
配備されているモジュールのwebapps/redmine-0.8.7/WEB-INF/lib下に
mysql-connector-java-5.1.10-bin.jarを置いたら無事に動作しました。