Ruby on Rails : déployer une application sur Tomcat avec JRuby
Ruby on Rails est un framework qui permet de développer très rapidement des applications Web en suivant le modèle MVC.
Le problème de ce framework est qu’il se base sur le langage Ruby et qu’il embarque un serveur Web. Les applications ainsi créées ne peuvent pas être déployées comme des applications Web dans Tomcat ou autres serveurs d’applications.
Le but de ce tutoriel est de vous permettre de déployer les applications Ruby on Rails (RoR) sur un serveur Tomcat en utilisant la librairie JRuby.
Installation Tomcat
On commence par télécharger la dernière version de Tomcat (en ce moment c’est la version 6.0.20) :
1 2 | wget http://mirror.mkhelif.fr/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz tar –xzf apache-tomcat-6.0.20.tar.gz |
Voilà Tomcat est installé, je passerai ici la configuration du serveur. Si vous souhaitez, suivez mon tutoriel pour connecter Apache avec Tomcat.
Installation JRuby
Télécharger JRuby et placez le là où vous souhaitez :
1 2 3 | wget http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1.tar.gz tar –xzf jruby-bin-1.3.1.tar.gz mv jruby-1.3.1 /usr/local/jruby |
Ajouter ensuite le chemin vers JRuby dans votre environnement en éditant votre fichier ~/.profile :
1 | export PATH=$PATH:/usr/local/jruby/bin |
Vous pouvez vérifier l’installation de JRuby en exécutant la commande suivante :
1 2 | $ jruby -v jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1.5.0_16) [i386-java] |
Installation de Ruby on Rails
À partir de là nous allons installer les gems pour : rails (le coeur de ROR), mysql et surtout warbler (qui crée un WAR à partir de l’application rails).
1 2 3 | $ jruby -S gem install rails $ jruby -S gem install activerecord-jdbcmysql-adapter $ jruby -S gem install warbler |
Déploiement de votre application
Pour déployer votre application dans Tomcat, il faut commencer par la convertir en WAR. Placez vous dans le dossier de votre application et lancez la commande suivante :
1 | $ warble config |
Cela va créer un fichier <application>/config/warble.rb pour configurer votre application pour la convertir en fichier WAR, ouvrez le fichier et dé-commentez la ligne :
1 | config.gems += ["activerecord-jdbcmysql-adapter"] |
Cela pour inclure dans votre fichiers WAR la gem MySQL (ajoutez les gems que votre application utilise ici).
Maintenant nous allons créer le fichier WAR de votre application, lancez simplement la commande :
1 | $ warble |
Et voilà votre fichier WAR est créé, vous pouvez alors le déployer sur Tomcat (je passerai sur cette étape).