2009-07-06 10 views
8

IISで動作するようにjRubyを設定する人はいませんか。IISとjRubyの設定手順

編集:

私が探している何がIISとのJRubyを使用してWindowsに取り組んでRuby on Railsアプリケーションを取得するためのステップバイステップのインストラクションです。その理由は、野生で質問をするときに "Linuxを使う"以外のものを見つけることができないからです。ほとんどの人にとって、Windowsは主な開発およびデプロイメント環境なので、Linuxベースのサーバーを使用することは問題になりません。また、IISはWindowsに含まれており、Active Directoryとの優れた統合を提供するので、Apacheを使用することも問題ありません。

最終的にはwarファイルを使用しているのは悪夢なので、warファイルを使用してファイルをコピーするだけで、レールアプリケーションを配備する方法を説明してください。

+0

私は戦争のファイルを避けることによって間違った方法を行っていると思います。長い間、戦争ファイルについて学び、むしろそれらを回そうとすると、時間がかかります。 –

+0

私はJRubyとIISのためのステップウォークスルーをNO WARSで表示するために私の答えを大幅に更新しました:-) –

+0

Warblerを使った戦争の作成とGlassfishでのJRuby/Railsのアプリケーションの実行IIS。 Enjoy :-) –

答えて

10

実際には、IISにデプロイするRailsアプリですか、それともJRubyでなければなりませんか? JRubyではなくRuby on Railsの場合は、here is your step-by-step guideです。しかし、JRubyならIISで作業したいと思っています。以下は、私が従った手順です。私の環境はWindows 7 RC、Java 1.6.0_13上のIIS7です。

  1. まず、JRubyをhttp://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gzからダウンロードしました。
  2. 次に、アーカイブをC:\JRubyに解凍しました。
  3. 環境変数JRUBY_HOMEをc:\JRuby\jruby-1.3.1に設定しました。
  4. パスに%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をこれまでのところ。のは、Railsのアプリを作成してみましょう

 
C:\Users\Vinay>gem install json-jruby 
C:\Users\Vinay>gem install rails --no-rdoc 
JRuby limited openssl loaded. gem install jruby-openssl for full support. 
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL 
Successfully installed activerecord-2.3.3 
Successfully installed rack-1.0.0 
Successfully installed actionpack-2.3.3 
Successfully installed actionmailer-2.3.3 
Successfully installed activeresource-2.3.3 
Successfully installed rails-2.3.3 
6 gems installed 
Installing ri documentation for activerecord-2.3.3... 
Installing ri documentation for rack-1.0.0... 
Installing ri documentation for actionpack-2.3.3... 
Installing ri documentation for actionmailer-2.3.3... 
Installing ri documentation for activeresource-2.3.3... 
Installing ri documentation for rails-2.3.3... 

jrorと呼ばれる::のは、レールを取り付けるにはJRubyを使用してみましょう

 
C:\Users\Vinay\Projects>rails new jror 
     create 
     create app/controllers 
     create app/helpers 
     create app/models 
     create app/views/layouts 
     create config/environments 
     create config/initializers 
     create config/locales 
     create db 
     create doc 
     create lib 
     create lib/tasks 
     create log 
     create public/images 
     create public/javascripts 
     create public/stylesheets 
     create script/performance 
     create test/fixtures 
     create test/functional 
     create test/integration 
     create test/performance 
     create test/unit 
     create vendor 
     create vendor/plugins 
     create tmp/sessions 
     create tmp/sockets 
     create tmp/cache 
     create tmp/pids 
     create Rakefile 
     create README 
     create app/controllers/application_controller.rb 
     create app/helpers/application_helper.rb 
     create config/database.yml 
     create config/routes.rb 
     create config/locales/en.yml 
     create config/initializers/backtrace_silencers.rb 
     create config/initializers/inflections.rb 
     create config/initializers/mime_types.rb 
     create config/initializers/new_rails_defaults.rb 
     create config/initializers/session_store.rb 
     create config/environment.rb 
     create config/boot.rb 
     create config/environments/production.rb 
     create config/environments/development.rb 
     create config/environments/test.rb 
     create script/about 
     create script/console 
     create script/dbconsole 
     create script/destroy 
     create script/generate 
     create script/runner 
     create script/server 
     create script/plugin 
     create script/performance/benchmarker 
     create script/performance/profiler 
     create test/test_helper.rb 
     create test/performance/browsing_test.rb 
     create public/404.html 
     create public/422.html 
     create public/500.html 
     create public/index.html 
     create public/favicon.ico 
     create public/robots.txt 
     create public/images/rails.png 
     create public/javascripts/prototype.js 
     create public/javascripts/effects.js 
     create public/javascripts/dragdrop.js 
     create public/javascripts/controls.js 
     create public/javascripts/application.js 
     create doc/README_FOR_APP 
     create log/server.log 
     create log/production.log 
     create log/development.log 
     create log/test.log 

はのは、予想通りにすべての作業を確認するためにWEBrickを実行してみましょう:

 
C:\Users\Vinay\Projects\jror>jruby script/server 
=> Booting WEBrick 
=> Rails 2.3.3 application starting on http://0.0.0.0:3000 
JRuby limited openssl loaded. gem install jruby-openssl for full support. 
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2009-07-21 17:51:21] INFO WEBrick 1.3.1 
[2009-07-21 17:51:21] INFO ruby 1.8.6 (2009-06-15) [java] 
[2009-07-21 17:51:21] INFO WEBrick::HTTPServer#start: pid=2440 port=3000 

移動http://localhost:3000/へRailsアプリケーションが表示されていることを確認してください。

Rails app on WEBrick

案の定、そこにそれがあります。

次に、IISに対して選択された要求がJRubyにプロキシされるメカニズムを設定します。これを行うには、URLリライタ/リバースプロキシが必要です。私はこれにISAPI Rewrite 3を使用しました。別のツール(Microsoft ISAなど)を使用することもできます。 ISAPI Rewrite 3はサーバー1台あたり99ドルの価値があり、45日間の試用期間があります。

http://localhost/jror/abc123 

http://localhost:3000/abc123 

にフォームの

 
RewriteEngine on 
RewriteBase/
RewriteLog "C:\temp\rewrite.log" 
RewriteLogLevel 9 
RewriteProxy jror/(.*) http://localhost:3000/$1 

このプロキシのURLだから今、次のように

はISAPIリライト3のために、私はhttpd.conf設定ファイルを設定しますhttp://localhost/jror/に移動し、JRubyが提供するリクエストを見ることができます。 IIS:

Rails app on WEBrick through IIS

そして、何を推測:なし戦争! Railsアプリケーションの変更は直接行わなければなりません。ここで

は、そのページのレスポンスヘッダを示す私のFirebugのコンソールのスクリーンショットです:もちろん

alt text

これは生産よりも、開発のセットアップの詳細です - しかし、本番環境での使用のためにあなたはおそらく必要があります。これらの厄介な戦争の使用を伴うGlassfishのようなプロダクション対応のアプリケーションサーバーを使用するには;-)

戦争を使用してJavaアプリケーションサーバーに展開する場合は、Warblerを使用して簡単にパッケージ化することができますアプリを戦争に加える

Glassfish V3で実行するには、いくつかの追加手順が必要です。 Railsアプリケーションを配備して実行する最も簡単な方法は、GlassFish v3カーネル(Grizzly)といくつかのユーティリティのみで構成されたGlassFish gemを使用することです。のは、宝石をインストールしてみましょう:

 
C:\Users\Vinay\Projects\jror>gem install glassfish 
JRuby limited openssl loaded. gem install jruby-openssl for full support. 
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL 
Successfully installed glassfish-0.9.5-universal-java 
1 gem installed 
Installing ri documentation for glassfish-0.9.5-universal-java... 
Installing RDoc documentation for glassfish-0.9.5-universal-java... 

はGlassfishの上のRailsアプリを実行します。

 
C:\Users\Vinay\Projects>glassfish jror 
Starting GlassFish server at: 192.168.0.17:3000 in development environment... 
Writing log messages to: jror/log/development.log. 
Press Ctrl+C to stop. 

あなたが見ることができるように、あなたはGlassfishの上で実行しているが、まだ戦争は必要ありません! Glassfishサーバーで使用されているIPアドレスとポートを指すようにプロキシを変更する以外は、IIS側で変更する必要はありません(セットアップではhttpd.conf)。あなたが豚全体に行き、フルGlassfishサーバーをインストールし、その上でRailsアプリケーションを実行したい場合は、Glassfishチームのthese instructionsに従ってください。 Glassfish、サーバーのインストールと実行、Railsアプリケーションのデプロイとアンデプロイ、および本番モードでのアプリケーションの実行について説明します。

完全なGlassfishサーバー用のwarファイルを作成するために必要なものは次のとおりです。

ムシクイインストール:

 
C:\Users\Vinay\Projects>gem install warbler 
JRuby limited openssl loaded. gem install jruby-openssl for full support. 
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL 
Successfully installed warbler-0.9.13 
1 gem installed 
Installing ri documentation for warbler-0.9.13... 
Installing RDoc documentation for warbler-0.9.13... 

実行ムシクイ:

 
C:\Users\Vinay\Projects\jror>warble 
mkdir -p tmp/war/WEB-INF/gems/specifications 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/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/specifications/rake-0.8.7.gemspec tmp 
war/WEB-INF/gems/specifications/rake-0.8.7.gemspec 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/activesupport-2.3.3.ge 
spec tmp/war/WEB-INF/gems/specifications/activesupport-2.3.3.gemspec 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/activerecord-2.3.3.gem 
pec tmp/war/WEB-INF/gems/specifications/activerecord-2.3.3.gemspec 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/actionpack-2.3.3.gemsp 
c tmp/war/WEB-INF/gems/specifications/actionpack-2.3.3.gemspec 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/rack-1.0.0.gemspec tmp 
war/WEB-INF/gems/specifications/rack-1.0.0.gemspec 
cp C:/JRuby/jruby-1.3.1/lib/ruby/gems/1.8/specifications/actionmailer-2.3.3.gem 
pec tmp/war/WEB-INF/gems/specifications/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/vendor 
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/produc 
ion.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/warbler-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-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 
Volume in drive C has no label. 
Volume Serial Number is 0C8D-1418 

Directory of C:\Users\Vinay\Projects\jror 

22/07/2009 15:55  13,180,634 jror.war 
       1 File(s)  13,180,634 bytes 
       0 Dir(s) 7,730,462,720 bytes free 

ふうに!

+0

です。私は戦争ファイル事を忘れてしまいます。グラスフィッシュを使用してjrubyをiisに接続するための手順を投稿すると、私はあなたの答えを受け入れ、あなたに賞金を与えます。申し訳ありませんが、私はこのような苦痛を感じていますが、私は人々がこれらの指導を1か所で見つける場所を求めています。 – rip747

+0

この回答は、SOの奨励金制度が実際に働いていることを実証していると私は考えていますか?あなたはこのレベルの情報を得るために誰かに支払わなければならないと思いますか? – DanSingerman

+0

実際、ダン、別のプロジェクトのために(Glassfishではなく)同様の設定をしなければならなかったのです。確かに、私はこの答えに少しの努力をしましたが、それは私自身の将来の参考のためです。私は簡単に奨励金が関与していない人々のブログに関するこのレベルの情報を見つけました。奨励金が持っていることは間違いありません。しかし、賞金のために時間を費やす価値はありません。 –

5

まず、Tomcatをインストールする必要があります。 IISと一緒にTomcatを設定する場合は、how-toを参照してください。

JRubyでは、WARファイルを作成します。これらをTomcatのwebappsフォルダにドロップするだけです。

更新: [OK]を使用すると、IISとJRubyの2つのテクノロジを統合する必要があります。良いことは、JRubyはJavaとRubyの両方であり、両方の世界から最高のものを使うことができるということです。 Rubyは生産性が高く、コード作成が楽ですが、Javaはデプロイメントに優れています(特にIISで行う必要がある場合)。だから私のアドバイスはまだ成立している。 warファイルを作成し、Tomcatをインストールしてそこにwarファイルをデプロイします。 warファイルを展開するのは、webappsフォルダにコピーするのと同じくらい簡単です。これらはあなたが従う必要がある手順です。

  • は、(WARファイルを作成します
  • (あなたはこの詳細が必要な場合、私は助けることができる)ISAPIプラグインを使用してIISとTomcatを統合Tomcatの
  • をインストールします。 NetBeans IDEのあなたのためにそれを行うことができます)
  • コピーTomcatの

のWebアプリケーションフォルダにWARファイルそれでもWARファイルを使用したくない場合は、このblog spotを見てみましょう。 IISでRoRを実行する方法について説明します。私はJRubyの場合、手順はまったく同じだと考えています。とにかく、WARファイルを避けたい場合は、CGIアプローチが唯一の方法です。

+0

ええ、重要なのは、jRubyがJavaバイトコードにコンパイルすることです。私が間違っていない限り、必要なのは、適切なjRuby WARファイルを持つJavaサーブレット・コンテナだけです。 –

+0

JRubyデプロイメント用のWARファイルは、http://rubyonrails.org/deployの推奨ファイル – kgiannakakis