Installer Ruby On Rails et Mongrel sur un serveur OVH en release 1
L’idée est d’installer tout un environnement Ruby on Rails sur un serveur dédié OVH en release 1 (Apache 1.3, MySQL 3.23…)
Cet article a été écrit de mémoire, il est possible qu’il y ait de petites erreurs. N’hésitez pas à me les signaler.
1) Installer Ruby
Voir : ruby-lang.org
# wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz
# tar xzvf ruby-1.8.5.tar.gz
# cd ruby-1.8.5
# ./configure
# make
# sudo make install
2) Installer RubyGems
# wget http://rubyforge.iasi.roedu.net/files/rubygems/rubygems-0.9.0.tgz
# tar xzvf rubygems-0.9.0.tgz
# cd rubygems-0.9.0
# sudo /usr/local/bin/ruby setup.rb
3) Installer Ruby On Rails
# sudo gem install rails --include-dependencies
4) Installer FastCGI
# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
# tar xzvf fcgi-2.4.0.tar.gz
# cd fcgi-2.4.0
# ./configure
# make
# sudo make install
5) Installer les bindings Ruby-FastCGI
# wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
# tar xzvf ruby-fcgi-0.8.6.tar.gz
# cd ruby-fcgi-0.8.6
# /usr/local/bin/ruby install.rb config
# /usr/local/bin/ruby install.rb setup
# sudo /usr/local/bin/ruby install.rb install
# sudo gem install fcgi
6) Installer la librairie PCRE
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.7.tar.gz
# tar xzvf pcre-6.7.tar.gz
# cd pcre-6.7
# ./configure
# make
# sudo make install
7) Installer les serveur web Mongrel
Voir : mongrel.rubyforge.org
# sudo gem install mongrel
8) Installer les bindings MySQL
Attention, Rails conseille fortement MySQL 4+, notamment pour les tables InnoDB…
J’ai des tas d’autres sites qui tournent avec du MySQL 3 et je ne souhaite pas changer, donc je vais utiliser SQLite pour mon appli Rails qui sera peu gourmande en base de données.
# sudo gem install mysql
9) Installer SQLite
9.1) Installer le serveur SQLite
# wget http://sqlite.org/sqlite-3.3.8.tar.gz
# tar -xzf sqlite-3.3.8.tar.gz
# cd sqlite-3.3.8/
# mkdir build
# cd build/
# ../configure --prefix=/usr/local/sqlite --disable-tcl --with-gnu-ld
# make
# make install
# gem install sqlite
9.1) Installer SWIG
# wget http://heanet.dl.sourceforge.net/sourceforge/swig/swig-1.3.29.tar.gz
# tar -xzf swig-1.3.29.tar.gz
# cd swig-1.3.29/
# ./configure
# make
# make check
# make install
9.2) Installer les bindings Ruby-SQLite
# gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/sqlite
10) Rendre l’appli Rails accessible
10.1) Créer et démarrer une appli Rails
# rails /home/user/appli
# cd /home/user/appli
# mongrel_rails start -d -p 8000
On a donc une appli nommée “appli” qui tourne dans Mongrel en mode démon, sur le port 8000
On souhaite pouvoir acceder à l’appli sur le port 80 au lieu du port 8000, il faut donc utiliser le mod_proxy d’Apache sur un VirtualHost spécifique.
10.2) Recompiler Apache avec mod_proxy
J’ai utilisé la configuration présente dans le patch 1.67 :
# cd apache_1.3.34
# ./configure
--prefix=/usr/local/apache
--activate-module=src/modules/php4/libphp4.a
--enable-suexec
--suexec-caller=nobody
--suexec-userdir=www
--suexec-docroot=/home
--suexec-logfile=/usr/local/apache/logs/cgi.log
--suexec-uidmin=99
--suexec-gidmin=99
--suexec-safepath=/usr/local/bin:/usr/bin:/bin
--enable-module=so
--enable-module=rewrite
--add-module=src/modules/extra/mod_gzip.c
--enable-module=proxy
--enable-module=ssl
# make
# sudo make install
# sudo /etc/rc.d/init.d/httpd restart
10.3) Création du VirtualHost
Adapter et ajouter ceci dans votre httpd.conf
<VirtualHost *:80>
ServerName appli.mon-domaine.com
ProxyPass / http://appli.mon-domaine.com:8000/
ProxyPassReverse / http://appli.mon-domaine.com:8000
</VirtualHost>