是否有人有明确的说明来设置jRuby以与IIS一起使用。

编辑:

我正在寻找逐步说明,以使IIS上的Ruby on Rails应用程序可以在Windows和IIS上运行。原因是因为在野外提问时,除了“使用Linux”之外,我找不到其他东西。对于大多数人来说,Windows是主要的开发和部署环境,因此使用基于Linux的服务器是不可能的。 IIS随Windows一起提供,并提供与Active Directory的高级集成,因此也不用使用Apache。

最后一件事是使用war文件是一场噩梦,请提供有关如何通过仅复制文件或其他任何方式然后使用war文件来部署Rails应用程序的说明。

最佳答案

它实际上只是您要在IIS上部署的Rails应用程序,还是必须是JRuby?如果只是Ruby on Rails而不是JRuby,则here is your step-by-step guide。但是,如果您是JRuby,那么您想使用IIS,就别无所求了。以下是我遵循的步骤;我的环境是Windows 7 RC,Java 1.6.0_13上的IIS7。


首先,我从http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gz下载了JRuby。
然后,我将存档提取到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 so far. Let's use JRuby to install 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...

Let's create a Rails app called jror:

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

Let's run WEBrick to make sure everything's working as expected:

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

Navigate to http://localhost:3000/ and confirm that your Rails application appears.

ruby-on-rails - 设置IIS和jRuby的说明-LMLPHP

Sure enough, there it is.

The next thing is to set up a mechanism whereby selected requests made to IIS are proxied to JRuby. To do this, an URL rewriter/reverse proxy is needed. I used ISAPI Rewrite 3 for this. You may choose to use a different tool (for example, Microsoft ISA). ISAPI Rewrite 3 is good value at $99 per server, and comes with a 45-day trial period.

For ISAPI Rewrite 3, I set up the httpd.conf configuration file as follows:

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

This proxies URLs of the form

http://localhost/jror/abc123




http://localhost:3000/abc123


所以现在,我们可以导航到http://localhost/jror/并通过IIS查看JRuby服务的请求:



猜猜看:没有战争!对Rails应用程序的任何更改都应直接通过。

这是Firebug控制台的屏幕截图,显示了该页面的响应标题:



当然,这比开发平台更多的是开发设置-但对于生产用途,您可能需要使用可用于生产的应用服务器,例如Glassfish,这将需要使用那些讨厌的战争;-)

如果确实要使用wars部署到Java应用服务器,则可以使用Warbler轻松将应用打包为war。

要在Glassfish V3上运行,还需要一些其他步骤。部署和运行Rails应用程序的最快方法是使用GlassFish gem,它仅由GlassFish v3内核(Grizzly)和一些实用程序组成,因此可进行最小设置。让我们安装gem:

C:\ Users \ Vinay \ Projects \ jror> gem安装glassfish
JRuby限制了openssl的加载。 gem安装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上奔跑,但仍然不需要战争!除了(在我的设置中的httpd.conf中)将代理更改为指向Glassfish服务器使用的IP地址和端口之外,在IIS端不需要进行任何更改。如果您想全力以赴并安装完整的Glassfish服务器并在其上运行Rails应用程序,则最好遵循Glassfish团队的these instructions。它们涵盖了安装和运行Glassfish,服务器,部署和取消部署Rails应用程序以及在生产模式下运行这些应用程序。

这是为完整的Glassfish服务器创建war文件的需求。

安装鸣鸟:

C:\ Users \ Vinay \ Projects> gem安装鸣鸟
JRuby限制了openssl的加载。 gem安装jruby-openssl以提供全面支持。
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
成功安装warbler-0.9.13
已安装1个宝石
正在安装warbler-0.9.13的ri文档...
正在安装warbler-0.9.13的RDoc文档...


运行莺:

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
战争/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
规格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
战争/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
离子
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
驱动器C中的卷没有标签。
卷序列号是0C8D-1418

C:\ Users \ Vinay \ Projects \ jror目录

22/07/2009 15:55 13,180,634 jror.war
1个文件13,180,634字节
0 Dir 7,730,462,720字节免费


关于ruby-on-rails - 设置IIS和jRuby的说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1086994/

10-14 18:27