Redmineをtomcat上で動かしてみた
以前からAll-in-One eclipseを使っていたのですが、バージョンが古くなってきた(3.2)のと
そろそろ別のものも使ってみたいということでPleiades All in One をインストールしました。
Pleiadesには付属のTomcatがあるようなので、Redmineの実行を試してみます。
windows環境です。
ダウンロード
- eclipse pleiades 3.5 all in one for Java
- JRuby
- Rails
- Redmine 0.8.7
- MySQL (jdbcドライバもダウンロードした)
インストール
- JRuby、MySQLはインストーラでインストール
- eclipse と Redmineはそれぞれzipを解凍するだけ。eclipseのworkspaceにredmineをインポートしておいた(特に意味は無い)
- MySQLのjdbcドライバは解凍して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の設定を変更する
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を置いたら無事に動作しました。