IIS にデプロイしたいのは実際にはただの Rails アプリですか、それとも JRuby でなければなりませんか? JRuby ではなく Ruby on Rails だけの場合は、こちらのステップバイステップ ガイドをご覧ください。しかし、JRuby で IIS を使用したい場合は、もう探す必要はありません。以下は、私が従った手順です。私の環境は、Windows 7 RC、Java 1.6.0_13 上の IIS7 です。
- まず、JRuby を からダウンロードしました
http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gz
。
- 次に、アーカイブを に解凍しました
C:\JRuby
。
- 環境変数 JRUBY_HOME を に設定しました
c:\JRuby\jruby-1.3.1
。
%JRUBY_HOME%\bin
パスに追加しました。
画面グラブが散在する状態で、次の手順を説明します。
jruby を実行して、正常にインストールされたことを確認しましょう。
C:\Users\Vinay>jruby -v
jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1.
6.0_13) [x86-Java]
ここまではOK。JRuby を使用して Rails をインストールしましょう。
C:\Users\Vinay>gem インストール json-jruby
C:\Users\Vinay>gem install rails --no-rdoc
JRuby 限定の openssl が読み込まれました。完全なサポートについては、gem install jruby-openssl を使用してください。
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
activerecord-2.3.3 が正常にインストールされました
Rack-1.0.0 が正常にインストールされました
actionpack-2.3.3 が正常にインストールされました
actionmailer-2.3.3 が正常にインストールされました
activeresource-2.3.3 が正常にインストールされました
rails-2.3.3 が正常にインストールされました
6つの宝石がインストールされています
activerecord-2.3.3 の ri ドキュメントをインストールしています...
Rack-1.0.0 の ri ドキュメントをインストールしています...
actionpack-2.3.3 の ri ドキュメントをインストールしています...
actionmailer-2.3.3 の ri ドキュメントをインストールしています...
activeresource-2.3.3 の ri ドキュメントをインストールしています...
rails-2.3.3 の ri ドキュメントをインストールしています...
というRailsアプリを作成しましょうjror
:
C:\Users\Vinay\Projects>rails new jror
作成
アプリ/コントローラーを作成する
アプリ/ヘルパーを作成する
アプリ/モデルを作成する
アプリ/ビュー/レイアウトを作成する
構成/環境を作成する
構成/初期化子を作成する
構成/ロケールを作成する
データベースを作成
ドキュメントを作成
ライブラリを作成
ライブラリ/タスクを作成します
ログを作成
パブリック/イメージを作成
public/javascript を作成する
パブリック/スタイルシートを作成する
スクリプト/パフォーマンスを作成する
テスト/フィクスチャを作成する
テスト/機能を作成する
テスト/統合の作成
テスト/パフォーマンスを作成する
テスト/ユニットを作成する
ベンダーを作成する
ベンダー/プラグインを作成する
tmp/セッションを作成する
tmp/ソケットを作成する
tmp/キャッシュを作成
tmp/pid を作成する
Rakefile を作成する
README を作成する
app/controllers/application_controller.rb を作成します
app/helpers/application_helper.rb を作成します
config/database.yml を作成します
config/routes.rb を作成
config/locales/en.yml を作成します
config/initializers/backtrace_silencers.rb を作成します
config/initializers/inflections.rb を作成します
config/initializers/mime_types.rb を作成します
config/initializers/new_rails_defaults.rb を作成します
config/initializers/session_store.rb を作成します
config/environment.rb を作成します
config/boot.rb を作成
config/environments/production.rb を作成します
config/environments/development.rb を作成します
config/environments/test.rb を作成します
スクリプトの作成/概要
スクリプト/コンソールを作成する
スクリプト/dbconsole を作成
スクリプトの作成/破棄
スクリプトの作成/生成
スクリプト/ランナーを作成する
スクリプト/サーバーの作成
スクリプト/プラグインを作成する
スクリプト/パフォーマンス/ベンチマークを作成
スクリプト/パフォーマンス/プロファイラーを作成
test/test_helper.rb を作成
test/performance/browsing_test.rb を作成
public/404.html を作成
public/422.html を作成
public/500.html を作成
public/index.html を作成します
public/favicon.ico を作成します
public/robots.txt を作成します
public/images/rails.png を作成します
public/javascripts/prototype.js を作成します
public/javascripts/effects.js を作成します
public/javascripts/dragdrop.js を作成します
public/javascripts/controls.js を作成します
public/javascripts/application.js を作成します
doc/README_FOR_APP を作成
log/server.log を作成
log/production.log を作成
log/development.log を作成
log/test.log を作成
WEBrick
実行して、すべてが期待どおりに機能していることを確認しましょう。
C:\Users\Vinay\Projects\jror>jruby スクリプト/サーバー
=> WEBrick の起動
=> http://0.0.0.0:3000 で始まる Rails 2.3.3 アプリケーション
JRuby 限定の openssl が読み込まれました。完全なサポートについては、gem install jruby-openssl を使用してください。
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
=> -d を指定して呼び出すとデタッチされます
=> Ctrl-C でサーバーをシャットダウン
[2009-07-21 17:51:21] INFO WEBrick 1.3.1
[2009-07-21 17:51:21] INFO ルビー 1.8.6 (2009-06-15) [Java]
[2009-07-21 17:51:21] INFO WEBrick::HTTPServer#start: pid=2440 ポート=3000
Rails アプリケーションに移動http://localhost:3000/
して、Rails アプリケーションが表示されることを確認します。

案の定、そこにあります。
次に、IIS に対して行われた選択された要求が JRuby にプロキシされるメカニズムをセットアップします。これを行うには、URL リライター/リバース プロキシが必要です。これにはISAPI Rewrite 3を使用しました。別のツール (Microsoft ISA など) を使用することもできます。ISAPI Rewrite 3 は、サーバーあたり 99 ドルでお得で、45 日間の試用期間が付属しています。
ISAPI Rewrite 3 の場合、httpd.conf
構成ファイルを次のように設定します。
RewriteEngine on
RewriteBase /
RewriteLog "C:\temp\rewrite.log"
RewriteLogLevel 9
RewriteProxy jror/(.*) http://localhost:3000/$1
これは、フォームの URL をプロキシします
http://localhost/jror/abc123
に
http://localhost:3000/abc123
これで、http://localhost/jror/
IIS を介して JRuby によって処理されたリクエストに移動して確認できます。

そして何を推測しますか:戦争はありません!Rails アプリへの変更はすべて直接反映されるはずです。
そのページの応答ヘッダーを示す Firebug コンソールのスクリーンショットを次に示します。

もちろん、これは本番用というよりも開発用のセットアップです - しかし、本番環境で使用するには、Glassfish などの本番対応のアプリケーションサーバーを使用する必要があるでしょう。
wars を使用して Java アプリサーバーにデプロイする場合は、Warblerを使用して、アプリを war に簡単にパッケージ化できます。
Glassfish V3 で実行するには、いくつかの追加手順が必要です。Grizzly
Rails アプリケーションをデプロイして実行する最も簡単な方法は、GlassFish v3 カーネル ( ) といくつかのユーティリティのみで構成される GlassFish gem を使用することです。gem をインストールしましょう。
C:\Users\Vinay\Projects\jror>gem install glassfish
JRuby 限定の openssl が読み込まれました。完全なサポートについては、gem install jruby-openssl を使用してください。
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
glassfish-0.9.5-universal-java が正常にインストールされました
1つの宝石がインストールされています
glassfish-0.9.5-universal-java の ri ドキュメントをインストールしています...
glassfish-0.9.5-universal-java の RDoc ドキュメントをインストールしています...
Glassfish で Rails アプリを実行します。
C:\Users\Vinay\Projects>glassfish jror
開発環境で GlassFish サーバーを 192.168.0.17:3000 で起動しています...
ログ メッセージの書き込み先: jror/log/development.log。
Ctrl+C を押して停止します。
ご覧のとおり、Glassfish で実行していますが、まだ war は必要ありません! httpd.conf
(私のセットアップで) Glassfish サーバーが使用する IP アドレスとポートを指すようにプロキシを変更する以外に、IIS 側での変更は必要ありません。完全に独占してGlassfishサーバーを完全にインストールし、そこでRailsアプリを実行したい場合は、Glassfishチームからの次の指示に従うこともできます. Glassfish、サーバーのインストールと実行、Rails アプリケーションのデプロイとアンデプロイ、およびプロダクション モードでのアプリケーションの実行について説明します。
完全な Glassfish サーバー用の war ファイルを作成するために必要なものは次のとおりです。
ウグイスをインストールします。
C:\Users\Vinay\Projects>gem インストール ウグイス
JRuby 限定の openssl が読み込まれました。完全なサポートについては、gem install jruby-openssl を使用してください。
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
ウグイス-0.9.13のインストールに成功
1つの宝石がインストールされています
warbler-0.9.13 の ri ドキュメントをインストールしています...
warbler-0.9.13 の RDoc ドキュメントをインストールしています...
ウグイスを実行します。
C:\Users\Vinay\Projects\jror>ワーブル
mkdir -p tmp/war/WEB-INF/gems/仕様
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/rails-2.3.3.gemspec tm
/war/WEB-INF/gems/specifications/rails-2.3.3.gemspec
mkdir -p tmp/war/WEB-INF/gems/gems
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/rake-0.8.7.gemspec tmp
戦争/WEB-INF/gems/仕様/rake-0.8.7.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/activesupport-2.3.3.ge
仕様 tmp/war/WEB-INF/gems/specifications/activesupport-2.3.3.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/activerecord-2.3.3.gem
pec tmp/war/WEB-INF/gems/仕様/activerecord-2.3.3.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/actionpack-2.3.3.gemsp
c tmp/war/WEB-INF/gems/仕様/actionpack-2.3.3.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/rack-1.0.0.gemspec tmp
戦争/WEB-INF/gems/仕様/rack-1.0.0.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/仕様書/actionmailer-2.3.3.gem
pec tmp/war/WEB-INF/gems/仕様/actionmailer-2.3.3.gemspec
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/activeresource-2.3.3.g
mspec tmp/war/WEB-INF/gems/specifications/activeresource-2.3.3.gemspec
mkdir -p tmp/war/WEB-INF/app
mkdir -p tmp/war/WEB-INF/config
mkdir -p tmp/war/WEB-INF/lib
mkdir -p tmp/war/WEB-INF/log
mkdir -p tmp/war/WEB-INF/ベンダー
mkdir -p tmp/war/WEB-INF/tmp
mkdir -p tmp/war/WEB-INF/app/controllers
mkdir -p tmp/war/WEB-INF/app/helpers
mkdir -p tmp/war/WEB-INF/app/models
mkdir -p tmp/war/WEB-INF/app/views
cp app/controllers/application_controller.rb tmp/war/WEB-INF/app/controllers/ap
lication_controller.rb
cp app/helpers/application_helper.rb tmp/war/WEB-INF/app/helpers/application_he
per.rb
mkdir -p tmp/war/WEB-INF/app/views/layouts
cp config/boot.rb tmp/war/WEB-INF/config/boot.rb
cp config/database.yml tmp/war/WEB-INF/config/database.yml
cp config/environment.rb tmp/war/WEB-INF/config/environment.rb
mkdir -p tmp/war/WEB-INF/config/environments
mkdir -p tmp/war/WEB-INF/config/initializers
mkdir -p tmp/war/WEB-INF/config/locales
cp config/routes.rb tmp/war/WEB-INF/config/routes.rb
cp config/environments/development.rb tmp/war/WEB-INF/config/environments/devel
pment.rb
cp config/environments/production.rb tmp/war/WEB-INF/config/environments/product
イオン.rb
cp config/environments/test.rb tmp/war/WEB-INF/config/environments/test.rb
cp config/initializers/backtrace_silencers.rb tmp/war/WEB-INF/config/initialize
s/backtrace_silencers.rb
cp config/initializers/inflections.rb tmp/war/WEB-INF/config/initializers/infle
tions.rb
cp config/initializers/mime_types.rb tmp/war/WEB-INF/config/initializers/mime_t
pes.rb
cp config/initializers/new_rails_defaults.rb tmp/war/WEB-INF/config/initializer
/new_rails_defaults.rb
cp config/initializers/session_store.rb tmp/war/WEB-INF/config/initializers/ses
ion_store.rb
cp config/locales/en.yml tmp/war/WEB-INF/config/locales/en.yml
mkdir -p tmp/war/WEB-INF/lib/tasks
mkdir -p tmp/war/WEB-INF/vendor/plugins
mkdir -p tmp/war/WEB-INF/tmp/cache
mkdir -p tmp/war/WEB-INF/tmp/pids
mkdir -p tmp/war/WEB-INF/tmp/sessions
mkdir -p tmp/war/WEB-INF/tmp/sockets
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/gems/ウグイス-0.9.13/lib/jruby-complet
-1.3.0RC1.jar tmp/war/WEB-INF/lib/jruby-complete-1.3.0RC1.jar
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/gems/ウグイス-0.9.13/lib/jruby-complet
-1.3.0RC1.jar tmp/war/WEB-INF/lib/jruby-complete-1.3.0RC1.jar
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/gems/warbler-0.9.13/lib/jruby-rack-0.
.4.jar tmp/war/WEB-INF/lib/jruby-rack-0.9.4.jar
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/gems/warbler-0.9.13/lib/jruby-rack-0.
.4.jar tmp/war/WEB-INF/lib/jruby-rack-0.9.4.jar
cp public/404.html tmp/war/404.html
cp public/422.html tmp/war/422.html
cp public/500.html tmp/war/500.html
cp public/favicon.ico tmp/war/favicon.ico
mkdir -p tmp/war/images
cp public/index.html tmp/war/index.html
mkdir -p tmp/war/javascripts
cp public/robots.txt tmp/war/robots.txt
mkdir -p tmp/war/stylesheets
cp public/images/rails.png tmp/war/images/rails.png
cp public/javascripts/application.js tmp/war/javascripts/application.js
cp public/javascripts/controls.js tmp/war/javascripts/controls.js
cp public/javascripts/dragdrop.js tmp/war/javascripts/dragdrop.js
cp public/javascripts/effects.js tmp/war/javascripts/effects.js
cp public/javascripts/prototype.js tmp/war/javascripts/prototype.js
mkdir -p tmp/war/WEB-INF
jar cf jror.war -C tmp/war .
C:\Users\Vinay\Projects\jror>dir jror.war
ドライブ C のボリュームにはラベルがありません。
ボリュームのシリアル番号は 0C8D-1418 です
C:\Users\Vinay\Projects\jror のディレクトリ
22/07/2009 15:55 13,180,634 jror.war
1 ファイル 13,180,634 バイト
0 Dir(s) 7,730,462,720 バイト空き
ふぅ!