Question

Quelqu'un a-t-il une instruction claire pour la configuration de JRuby pour travailler avec IIS.

Éditer:

Ce que je recherche, ce sont des instructions étape par étape pour obtenir une application Ruby on Rails fonctionnant sur Windows en utilisant IIS et JRuby. La raison en est que je ne trouve rien d'autre que "utiliser Linux" lorsque vous posez la question dans la nature. Pour la plupart des gens, Windows est le principal environnement de développement et de déploiement, donc l'utilisation d'un serveur basé sur Linux est hors de question. IIS est également inclus avec Windows et fournit une intégration supérieure avec Active Directory, donc l'utilisation d'Apache est également hors de question.

La dernière chose consiste à utiliser des fichiers de guerre est un cauchemar, veuillez inclure des instructions sur la façon de déployer des applications Rails en copiant simplement les fichiers ou quoi que ce soit à utiliser des fichiers de guerre.

Était-ce utile?

La solution

Est-ce en fait juste une application Rails que vous souhaitez déployer sur IIS, ou doit-elle être JRuby? Si c'est juste Ruby sur Rails plutôt que Jruby, alors Voici votre guide étape par étape. Mais si c'est JRUBY, vous voulez travailler avec IIS, ne cherchez pas plus loin. Vous trouverez ci-dessous les étapes que j'ai suivies; Mon environnement est IIS7 sur Windows 7 RC, Java 1.6.0_13.

  1. Tout d'abord, j'ai téléchargé JRuby à partir de http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gz.
  2. Ensuite, j'ai extrait les archives pour C:\JRuby.
  3. Je définis la variable d'environnement JRUBY_HOME c:\JRuby\jruby-1.3.1.
  4. J'ai ajouté %JRUBY_HOME%\bin au chemin.

Je vais traverser les prochaines étapes avec des captures d'écran entrecoupées.

Exécutons JRuby pour confirmer qu'il a été installé avec succès:

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 jusqu'à présent. Utilisons JRuby pour installer des 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...

Créons une application Rails appelée 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

Courons WEBrick Pour s'assurer que tout fonctionne comme prévu:

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

Aller vers http://localhost:3000/ et confirmez que votre application Rails apparaît.

Rails app on WEBrick

Effectivement, il y en a.

La prochaine chose consiste à mettre en place un mécanisme par lequel les demandes sélectionnées faites à l'IIS sont proxées à JRuby. Pour ce faire, un réécriture / proxy inverse d'URL est nécessaire. j'ai utilisé Isapi réécriture 3 pour ça. Vous pouvez choisir d'utiliser un autre outil (par exemple, Microsoft ISA). Isapi Rewrite 3 est une bonne valeur à 99 $ par serveur et est livré avec une période d'essai de 45 jours.

Pour Isapi Rewrite 3, j'ai mis en place le httpd.conf Fichier de configuration comme suit:

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

Ces proxies URL de la forme

http://localhost/jror/abc123

à

http://localhost:3000/abc123

Alors maintenant, nous pouvons naviguer vers http://localhost/jror/ Et voir la demande desserrée par JRuby mais via IIS:

Rails app on WEBrick through IIS

Et devine quoi: pas de guerres! Toute modification apportée à votre application Rails devrait passer directement.

Voici une capture d'écran de ma console Firebug montrant les en-têtes de réponse pour cette page:

alt text

Bien sûr, c'est plus une configuration de développement que celle de production - mais pour une utilisation en production, vous devrez probablement utiliser un appservateur prêt pour la production tel que Glassfish, ce qui entraînera l'utilisation de ces guerres embêtantes ;-)

Si et quand vous souhaitez déployer sur un appservateur Java à l'aide de guerres, vous pouvez utiliser Fauvette Pour un emballage facile de votre application dans une guerre.

Pour fonctionner sur Glassfish V3, des étapes supplémentaires sont nécessaires. Le moyen le plus rapide de déployer et d'exécuter vos applications Rails est d'utiliser le Glassfish Gem, qui ne se compose que du noyau V3 Glassfish (Grizzly) et certains services publics, donc en donnant une configuration minimale-broche. Installons le gemme:

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

Exécutez l'application Rails sur Glassfish:

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.

Comme vous pouvez le voir, vous courez sur Glassfish, mais aucune guerre n'est requise! Aucun changement n'est nécessaire du côté IIS, à part (en httpd.conf dans ma configuration) modifier le proxy pour pointer sur l'adresse IP et le port utilisés par le serveur Glassfish. Si vous souhaitez aller tout le porc et installer le serveur Glassfish complet et y exécuter des applications Rails, vous pouvez aussi suivre ces instructions de l'équipe Glassfish. Ils couvrent l'installation et l'exécution des applications Glassfish, serveur, déploient et indépendamment des applications Rails et exécutant les applications en mode de production.

Voici ce dont vous avez besoin pour créer des fichiers de guerre pour le serveur Glassfish complet.

Installer une paruline:

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

Faire une paruline:

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

Phew!

Autres conseils

Vous devez d'abord installer Tomcat. Regarde ça comment Pour la mise en place de Tomcat avec IIS.

Avec JRuby, vous allez créer des fichiers de guerre. Déposez-les dans le dossier WebApps de Tomcat et vous êtes prêt à partir.

Mise à jour: Ok, vous devez intégrer deux technologies qui n'étaient pas censées être utilisées ensemble: IIS et JRuBy. La bonne chose est que JRuby est à la fois Java et Ruby et vous pouvez utiliser le meilleur des deux mondes. Ruby est plus productif et amusant à coder, mais Java est meilleur pour le déploiement (surtout quand il faut le faire avec IIS). Donc, mon conseil est toujours possible. Créez un fichier de guerre, installez Tomcat et déployez le fichier de guerre là-bas. Le déploiement du fichier de guerre est aussi simple que de le copier dans le dossier WebApps. Ce sont les étapes que vous devez suivre:

  • Installer Tomcat
  • Intégrez Tomcat à IIS en utilisant le plug-in Isapi (je peux vous aider si vous avez besoin de plus d'informations à ce sujet)
  • Créer un fichier de guerre (NetBeans IDE peut le faire pour vous)
  • Copiez le fichier de guerre dans le dossier WebApps de Tomcat

Si vous ne voulez toujours pas utiliser les fichiers de guerre, jetez un œil à ce place de blog. Il décrit comment vous pouvez exécuter ROR avec IIS. Je crois que pour JRuby, la procédure serait la même. Quoi qu'il en soit, une approche CGI est la seule façon si vous souhaitez éviter les fichiers de guerre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top