« Installation de Ruby on Rails sous Linux et Windows »
Le 6 février 2009
Ruby on Rails
Une semaine est passée, voilà donc le premier article de la série dont je fais mention dans ce précédent post. Aujourd’hui, nous allons commencer en installant Ruby On Rails sur votre PC sous une distribution GNU/Linux populaire, Ubuntu ou sous Windows. Ne possédant pas de Mac, je me limiterai à ces deux systèmes, mais j’imagine que la procédure est également très simple.
Sous Linux / Ubuntu (le plus simple).
Effectivement, disposer d’un environnement Ruby on Rails complet sous Linux est l’affaire de quelques lignes de commandes bien placées. Tout d’abord, il vous faut installer le paquet ruby-full, qui dépend de tous les paquets essentiels à Ruby.
Ensuite, nous allons installer RubyGems, sorte de répertoire de paquets contenant des extensions pour le langage Ruby. Pour les développeurs plus habitués du PHP, il est analogue à PEAR, mais beaucoup plus puissant. Ainsi Rails et toutes ses dépendances (entre autres ActiveRecord, la couche ORM, ActiveMailer, etc.) sont disponibles sous forme de Gems. Le principal avantage est que cela rend leur mise à jour extrêmement facile.
Nous parlerons plus longuement des Gems dans un prochain article, mais en attendant, il nous faut maintenant passer à l’action. Le paquet rubygems existe bien dans votre distribution favorite, mais pour des raisons diverses, il est préférable d’installer la version officielle en la téléchargeant sur le site sourceforge du projet. Voiçi donc la marche à suivre, elle n’est pas bien complexe :
Et voilà, vous disposez maintenant de RubyGems ! Pour ma part j’apprécie d’utiliser la commande gem plutôt que gem1.8, il suffit pour cela d’un petit lien symbolique et le tour est joué :
Maintenant, il ne vous reste plus qu’à installer la gem Rails elle-même , ce qui est encore une fois très simple - les dépendances seront automatiquement installées, ce qui explique les autres paquets que vous verrez s’installer :
Pour démarrer un projet Rails, il ne vous reste plus qu’à utiliser la commande rails qui est maintenant à votre disposition. Ainsi pour créer le projet « MonBlog » dans votre répertoire personnel (/home), tapez :
Vous allez maintenant me dire : mais le serveur web ? le serveur de bases de données ? Où sont-ils ? La réponse tient en un mot : pour développer dans un premier temps, vous n’aurez besoin ni de l’un ni de l’autre. En effet, Rails inclus par défaut le petit serveur web de développement Webrick ainsi que le SGBD SQLite3 (basé sur un simple fichier contenant la base complète).
MISE À JOUR : il vous faut maintenant installer la gem permettant à Rails de fonctionner avec sqlite3. Pour cela, le principe est le même que précédemment :
Enfin, nous allons nous assurer que tout a bien été installé en démarrant le projet. Placez-vous tout d’abord dans le répertoire du projet et démarrez le serveur de développement :
Si tout s’est bien passé, laissez le terminal ouvert à côté et utilisez votre navigateur préféré pour vous rendre à l’adresse suivante : http://localhost:3000/. Le message "Welcome Abroad - You’re riding the Rails" devrait apparaître à l’écran :) (voyez la capture d’écran) !
L’environnement GNU/Linux, entre autres grâce à la ligne de commande Bash, est peut être le meilleur endroit pour développer avec Ruby on Rails - avec Mac OSX, bien entendu. Cela étant dit, il est clair que vous pouvez tout à fait développer sous Windows. L’instant publicitaire de l’article : Ubuntu c’est bien ! Essayez le, ça ne coûte rien, au propre et au figuré ! Fin de la parenthèse ;) ...
Sous Windows, à l’aide de RubyStack.
Sous Windows, les choses sont à la fois plus simples et plus compliquées : plus simples dans le sens où vous n’aurez que des boutons à cliquer, plus compliquées dans la mesure où vous n’aurez pas l’occasion de bien comprendre à quoi servent les actions que vous allez effectuer dans la mise en place d’un environnement Ruby on Rails. Cela pourra vous manquer si vous souhaitez ensuite déployer votre application sur un serveur Debian, par exemple.
Commençons donc par le commencement : RubyStack est un environnement complet pour développer avec Ruby on Rails qui contient tout ce dont vous aurez besoin (et même plus, il est livré avec des Gems supplémentaires compilées spécialement pour Windows). Il inclue entre autres MySQL, Apache, PHPMyAdmin, etc.
Rendez-vous à l’adresse suivante pour télécharger l’installeur pour Windows , qui pèse tout de même près de 80Mo : http://bitnami.org/stack/rubystack. Une fois téléchargé, exécutez l’installeur en suivant les instructions, et tout devrait bien se passer ;). Dans le doute, laissez les options par défaut.
RubyStack se comporte comme un service et vous permet également de démarrer une fenêtre de ligne de commande contenant toutes les commandes nécessaire au bon fonctionnement de Rails (Voyez la capture d’écran).
Déploiement complet sur un serveur à l’aide de Passenger.
Le déploiement d’une application Rails était il y a quelque temps une opération relativement ardue, mais grâce à Passenger (ex Mod Rails) de Phusion, il ne vous faudra que quelques commandes pour installer une application Ruby on Rails sur votre serveur en production. Il s’agit en fait simplement d’un module pour Apache, qui lui permettra de piloter votre application Rails de façon totalement transparente (vous pouvez donc garder vos sites PHP déjà hébergés etc.).
Tout d’abord, partons du principe que vous possédez déjà Apache 2 (apache2) et MySQL (mysql-server). L’installation de Passenger tient en quatre étapes très simples :
- Installation de la gem nommée "passenger".
- Installation d’une libraire de développement d’Apache, nous permettant de compiler un module.
- Compilation du module d’Apache réalisée directement par la gem qui vous guide de bout en bout grâce à un assistant extrêmement bien conçu et très coloré.
- Déclaration d’un nouveau VirtualHost dans votre configuration Apache.
Voilà les commandes qui vont nous servir :
Voyez dans le fichier de configuration /etc/apache2/httpd.conf pour déclarer votre VirtualHost : il vous suffit de faire pointer le DocumentRoot de ce dernier vers le répertoire public de l’application que vous avez créée précédement.
Je publierai peut-être un article au sujet des VirtualHosts, car j’ai appris beaucoup de choses à leur sujet dernièrement (du moins comment héberger plusieurs sites à des adresses différentes sur un même serveur) et je n’ai pas vraiment trouvé beaucoup d’aide sur Internet (du moins pas pour des choses aussi simples).
Une fois que vous avez configuré tout ça, n’oubliez pas de redémarrer Apache ou au moins de recharger la configuration :
Votre application devrait maintenant être présente sur le localhost, sur le port 80 (si votre Apache est réglé comme cela du moins). Attention ! L’application fonctionne à présent en environnement production, ce qui a certaines répercussions, la plus notable étant que tous les fichiers sont maintenant placés dans un cache afin d’améliorer les performances.
Ainsi, si vous modifiez un fichier, il vous faudra redémarrer l’application (et non le serveur, heureusement :p). Pour indiquer à Passenger qu’il doit recharger votre application en mémoire, déplacez vous dans le répertoire de l’application, et créez un fichier vide nommé restart.txt dans le répertoire tmp/ à l’aide de la commande touch.
Utilisons MySQL
Maintenant, peut être voudrez vous utiliser MySQL sur le serveur de production, ce qui semble être une décision sensée. Toutefois, sachez que Ruby ne peut pas encore communiquer avec MySQL, car il a besoin pour cela de compiler un pilote à partir des librairies de développement. En un mot, nous allons maintenant installer le paquet libmysqlclient15-dev et la gem mysql :
Voilà une bonne chose de faite ! Réglons maintenant l’application Rails pour la faire utiliser MySQL : on nous fournit pour cela un simple fichier yaml nommé database.yml qui est placé dans le répertoire config/ de l’application.
La lecture de ce fichier est évidente : il vous suffit de changer les informations placées sous la section "production" pour changer de SGBD. Ainsi voilà un extrait du fichier de départ :
Et voilà ce que j’ai placé dans mon serveur en production, à titre d’exemple :
Vous pouvez maintenant redémarrer votre application comme nous l’avons vu un peu plus haut :) ... Ça y est, vous avez configuré votre serveur de production pour Ruby on Rails !
Conclusion
Normalement en suivant ces quelques indications, vous devriez maintenant disposer d’un environnement de développement vous permettant de faire vos premières armes avec Ruby on Rails, ce qui est au programme de la semaine prochaine :) ! N’hésitez pas à laisser un commentaire si un point vous semble obscur, ou si vous rencontrez un problème quelconque.
Dandelionmood.com a déménagé !
Pour éviter la prolifération du spam, j'ai préféré désactiver les commentaires, d'autant que ce site n'est plus actif ... Merci à vous si vous aviez commenté, à bientôt sur Choses à faire.fr ;) !



