Archives du tag: Ruby 1.9

Web

Installer Ruby 1.9, Ruby on Rails 3 et Passenger sur un serveur Apache 2 sous Ubuntu 12.04

Comme beaucoup aujourd’hui, vous avez choisi d’utiliser les services d’Amazon Web Service pour vos déploiements de solutions web.

Seulement, plutôt que d’utiliser le classique Apache + PHP + MySQL, vous vous orientez vers une solution à base de Ruby on Rails.

Les instances EC2 d’Amazon utilisent, dans leur version Linux, Ubuntu 12.04 Server LTS. Et c’est là qu’est le problème : Ubuntu 12.04 est fourni en standard avec Ruby 1.8. Les dernières versions de Rails 3 nécessitent la version 1.9 de Ruby et il en va de même pour les futures versions.

Je vais donc considérer que vous avez en place un système Ubuntu 12.04 fonctionnel, ainsi que le serveur Apache 2 pleinement opérationnel.

Cet article est fortement inspiré d’une autre source orientée Nginx / PostgreSQL.

Première étape : installer les paquets pré-requis

Mettez à jour vos paquets via Aptitude.

sudo aptitude update;sudo aptitude upgrade

Puis, installez les paquets nécessaires à la suite des opérations.

sudo aptitude install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev curl git-core python-software-properties wget apache2-prefork-dev

Si vous utilisez une base de données MySQL

sudo aptitude install libmysqlclient-dev

Ou PostgreSQL

sudo aptitude install libpq-dev

Installer Ruby 1.9

Au moment de la rédaction de cette article, la dernière version en date de Ruby est la 1.9.3-p374.

Téléchargez et décompressez l’archive.

wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p374.tar.gz tar -xvzf ruby-1.9.3-p374.tar.gz

Allez dans le répertoire des sources et compiler le tout.

cd ruby-1.9.3-p374/ ./configure make

Installez Ruby. (installé dans /usr/local)

sudo make install

Configurez Gem. (optionnel mais conseillé dans une configuration serveur)

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

Enfin, installez le gem Bundler.

sudo gem install bundler

Installer Passenger

Passenger permet de lancer des applications Ruby on Rails directement via Apache ou Nginx.

Installons Passenger.

sudo gem install passenger

Installons maintenant le module Passenger pour Apache 2.

sudo passenger-install-apache2-module

Un assistant va se lancer : laissez le faire son job.

Il faut maintenant créer les fichiers de configuration.

/etc/apache2/mods-available/passenger.conf

PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19 PassengerRuby /usr/local/bin/ruby PassengerUserSwitching off PassengerDefaultUser www-data

/etc/apache2/mods-available/passenger.load

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

Ensuite, activons le module passenger.

sudo a2enmod passenger sudo service apache2 restart

Pour déployer une application Ruby on Rails, il suffit de créer le fichier de configuration correspondant dans le répertoire /etc/apache2/sites-available.
Appelons ce fichier /etc/apache/sites-available/test.

On considère que le répertoire où est installée l’application est /var/www/test.

<VirtualHost *:80>     ServerAdmin webmaster@test.fr     ServerName test.fr       PassengerDefaultUser www-data       DocumentRoot /var/www/test/public     <Directory /var/www/test/public>         AllowOverride all         Options -MultiViews     </Directory> </VirtualHost>

Le fichier est configuré. Vérifiez les autorisations sur /var/www/test.
Vérifiez que vous avez installé les gems nécessaires et que vous avez pré-compilé vos assets.
Dans le répertoire de l’application, pensez à réinitialiser l’app.

touch tmp/restart.txt

Ensuite, on peut activer le site.

sudo a2ensite test sudo service apache2 reload

Normalement, tout devrait être opérationnel. :-)

Share