Installer Ruby On Rails + Passenger pour Apache2 sur Debian

août 17th, 2009 par Samuel ROZE Leave a reply »

Certains outils très intéressants utilisent Ruby On Rails, il faut donc l’installer. Nous allons voir comment installer Ruby On Rails en installant en premier lieu le langage Ruby puis son gestionnaire de paquets, RubyGems, puis, grâce à celui-ci, Rails.

Installer Ruby depuis les sources

Nous allons compiler et installer Ruby nous-même. Pour ce faire, nous allons télécharger puis décompresser la dernière version stable de Ruby:

wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz
tar xzf stable-snapshot.tar.gz

Maintenant, nous allons très simplement configurer, compiler puis installer Ruby.

cd ruby
./configure --prefix=/etc/ruby
make
make install

Note: Exécutez ces commandes en tant que super-utilisateur.

Pour plus de facilitée, je vous conseil de créer un lien symbolique vers l’exécutable ruby afin de la pas avoir à renseigner le chemin complet à chaque fois:

ln -s /etc/ruby/bin/ruby /usr/bin/ruby

Installation de RubyGems

Maintenant, nous allons installer RubyGems, le gestionnaire de paquets de Ruby. Pour cela, nous allons télécharger la source de RubyGems. Vérifiez qu’il n’éxiste pas de nouvelle version à cette adresse.

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar xzf rubygems-1.3.5.tgz

Une fois décompresser, nous allons l’installer via la commande ruby:

cd rubygems-1.3.5
/etc/ruby/bin/ruby setup.rb

RubyGems est à présent installé.

Installation de Rails

Grâce à RubyGems, installer Rails ce fait en une seule commande très explicite:

/etc/ruby/bin/gem install rails

Apache2: Fushion Passenger

Fushion Passenger permet d’installer un module à Apache2 pour pouvoir exécuter du Ruby On Rails. Pour cela, nous allons le télécharger et le décompresser. N’oubliez pas de vérifier les nouvelles version à cette adresse.

wget http://rubyforge.org/frs/download.php/59007/passenger-2.2.4.tar.gz
tar xzf passenger-2.2.4.tar.gz

Nous allons déplacer le dossier de Passenger, passenger-2.2.4 dans le dossier d’apache, pour l’exemple, /etc/apache-2.2.13.

mv passenger-2.2.4 /etc/apache-2.2.13/passenger

Ensuite, il n’y a plus qu’a executer le script prévu à cet effet:

./etc/apache-2.2.13/passenger/bin/passenger-install-apache2-module
passenger-install-1

Installation du module Passenger pour Apache

Appuyez sur Entrée.

passenger-install-noinstall

Il manque une librairie...

Note: il se peut que vous soyez obliger d’installer un logiciel, une fenêtre comme celle ci-dessous vous le signalera.

Ensuite, vous aurez deux fenêtres, qui montrent respectivement ce qu’il y a à faire pour finir l’installation (voir Finalisation de l’installation de Passenger) puis un (très court) exemple de VirtualHost Apache.

Procédure de finalisation de l'installation

Procédure de finalisation de l'installation

Exemple de VirtualHost

Exemple de VirtualHost


Finalisation de l’installation de Passenger

Comme décrit par l’application d’installation, il faut maintenant ajouter ces quelques lignes à votre fichier de configuration Apache (par défaut, httpd.conf) :

LoadModule passenger_module /etc/apache-2.2.13/passenger/ext/apache2/mod_passenger.so
PassengerRoot /etc/apache-2.2.13/passenger
PassengerRuby /etc/ruby/bin/ruby

Nous allons maintenant faire en sorte que Passenger s’exécute sous le même utilisateur que Apache. Nous allons prendre pour utilisateur Apache, www-data. Ajoutez ces deux configurations dans votre fichier httpd.conf:

PassengerUserSwitching off
PassengerDefaultUser www-data

Redémarrez Apache.

Un exemple de configuration

Voici un exemple de configuration de VirtualHost Apache2 utilisé pour le gestionnaire de tâche Redmine de Mes-Stats.

<VirtualHost *:80>
        ServerName adresse1.mes-stats.fr
        ServerAlias adresse2.site2.com
 
        ServerAdmin webmaster@mes-stats.fr
 
        DocumentRoot /path/to/redmine/
        RailsEnv production
 
        <Directory /path/to/redmine/>
                Options -Indexes FollowSymLinks -MultiViews
                AllowOverride All
        </Directory>
 
        ErrorLog /path/to/logs/redmine/error.log
        LogLevel warn
        CustomLog /path/to/logs/redmine/access.log combined
 
        ServerSignature Off
 
        # On compresse la sortie des donnés
        SetOutputFilter DEFLATE
        Header append Vary User-Agent env=!dont-vary
</VirtualHost>

Laisser un commentaire