Ruby on Rails : déployer une application sur Tomcat avec JRuby
September 7, 2009
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) :
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 :
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 :
export PATH=$PATH:/usr/local/jruby/bin
Vous pouvez vérifier l’installation de JRuby en exécutant la commande suivante :
$ 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).
$ 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 :
$ warble config
Cela va créer un fichier *
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 :
$ warble
Et voilà votre fichier WAR est créé, vous pouvez alors le déployer sur Tomcat (je passerai sur cette étape).