是否有人有明确的指导来设置Jruby与IIS合作。

编辑:

我正在寻找的是逐步说明,用于使用IIS和Jruby在Windows上工作的Ruby应用程序。原因是因为在野外提出问题时,我找不到其他任何东西,然后“使用Linux”。对于大多数人来说,Windows是主要的开发和部署环境,因此使用基于Linux的服务器不可能。 Windows还包括IIS,并提供与Active Directory的卓越集成,因此使用Apache也是不可能的。

最后一件事是使用战争文件是一场噩梦,请包括有关如何通过复制文件或其他使用WAR文件的其他内容来部署Rails应用程序的说明。

有帮助吗?

解决方案

实际上,它只是您要在IIS上部署的Rails应用程序,还是必须是Jruby?如果只是在轨道上而不是jruby上的红宝石,那就 这是您的分步指南. 。但是,如果是Jruby,您想与IIS合作,请不要再看。以下是我遵循的步骤;我的环境是Windows 7 RC上的IIS7,Java 1.6.0_13。

  1. 首先,我从 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]

好吧,到目前为止。让我们使用jruby安装导轨:

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...

让我们创建一个名为的Rails应用程序 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

让我们跑步 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 app on WEBrick

果然,它是。

接下来的事情是设置一种机制,其中对IIS提出的选定请求被代理给Jruby。为此,需要一个URL重写器/反向代理。我用了 ISAPI重写3 为了这。您可以选择使用其他工具(例如Microsoft ISA)。 ISAPI重写3的价值是每台服务器$ 99,并带有45天的试用期。

对于Isapi重写3,我设置了 httpd.conf 配置文件如下:

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

该表格的代理网址

http://localhost/jror/abc123

http://localhost:3000/abc123

所以现在,我们可以导航到 http://localhost/jror/ 并查看Jruby的要求,但通过IIS:

Rails app on WEBrick through IIS

你猜怎么着: 没有战争呢您的Rails应用程序的任何更改都应直接通过。

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

alt text

当然,这更像是开发设置,而不是生产的设置 - 但是对于生产使用,您可能需要使用诸如Glassfish之类的生产应用程序,这将需要使用那些讨厌的战争;--)

如果并且当您想使用战争部署到Java Appserver时,您可以使用 让您的应用程序轻松包装到战争中。

要在玻璃鱼V3上运行,需要一些其他步骤。部署和运行轨道应用程序的最快方法是使用玻璃鱼宝石,该宝石仅由玻璃鱼V3内核组成(Grizzly)和一些公用事业,因此给予最低阳光的设置。让我们安装宝石:

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...

在玻璃鱼上运行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.

如您所见,您正在玻璃鱼上跑步,但仍然不需要战争!除了 httpd.conf 在我的设置中)更改代理,以指向Glassfish服务器使用的IP地址和端口。如果您想整个猪并安装完整的Glassfish服务器并在其上运行Rails应用程序,则也可以关注 这些说明 来自玻璃鱼队。它们涵盖安装和运行玻璃鱼,服务器,部署和不剥削的导轨应用程序,并在生产模式下运行应用程序。

这是为完整的Glassfish服务器创建战争文件所需的内容。

安装莺:

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

ph!

其他提示

您需要首先安装tomcat。看到这个 如何 与IIS一起设置Tomcat。

使用Jruby,您将构建战争文件。只需将它们放入Tomcat的WebApps文件夹中,您就可以使用了。

更新: 好的,您需要集成两种不应该使用的技术:IIS和Jruby。好事是Jruby既是Java又是Ruby,您可以在两全其美的情况下使用最好的。 Ruby与与之编码更具生产力和乐趣,但是Java更适合部署(尤其是在使用IIS时)。因此,我的建议仍然存在。创建一个战争文件,安装Tomcat并在此处部署战争文件。部署战争文件就像在WebApps文件夹中复制它一样容易。这些是您需要遵循的步骤:

  • 安装tomcat
  • 使用ISAPI插件将TOMCAT与IIS集成(如果您需要更多信息,我可以提供帮助)
  • 创建一个战争文件(NetBeans IDE可以为您做到这一点)
  • 将战争文件复制到Tomcat的WebApps文件夹

如果您仍然不想使用战争文件,请看一下 博客点. 。它描述了如何使用IIS运行。我相信对于Jruby,该过程将是相同的。无论如何,CGI方法是要避免战争文件的唯一方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top