Installer le module Phusion Passenger pour Apache 2 sur Debian
Phusion Passenger permet d'exécuter les applications Ruby On Rails sur Apache 2.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Pré-requis
Ce guide nécessite un serveur HTTP Apache 2 disposant du script suivant :
- Le script a2tools disponible dans le guide Installer et configurer Apache 2 sur Debian.
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Installation depuis les dépôts
Cette méthode d'installation est testée sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Installez le module passenger:
${cmdProxy} apt-get install libapache2-mod-passenger
Créez le fichier de configuration pour le module passenger:
echo "PassengerDefaultUser www-data" | ${cmdProxy} tee "/etc/apache2/mods-available/passenger-user.load"
Activez le module:
${cmdProxy} a2enmod passenger
${cmdProxy} a2enmod passenger-user
Rechargez la configuration d'Apache 2:
${cmdProxy} service apache2 force-reload
Installation depuis les sources
Cette méthode d'installation est testée sur:
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
Installez les dépendances de compilation:
${cmdProxy} apt-get -y install ruby ruby1.8-dev build-essential make \ apache2-prefork-dev libcurl4-openssl-dev libssl-dev zlib1g-dev \ libapr1-dev libaprutil1-dev
Installez "manuellement" une version récente de l'outil rubygems:
${cmdProxy} wget "http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz" \ --output-document="/tmp/rubygems.tgz" ${cmdProxy} tar --directory="/tmp" -xzf "/tmp/rubygems.tgz" ${cmdProxy} cd /tmp/rubygems-* ${cmdProxy} ruby setup.rb
Lancez l'installation de Passenger:
${cmdProxy} gem1.8 install passenger
Installez le module Apache 2 de Passenger:
${cmdProxy} passenger-install-apache2-module
Créez le fichier de configuration du module Passenger pour Apache 2:
PASSENGER_ROOT=$(find /usr/lib/ruby/gems/1.8/gems/ -type d -name "passenger-*" \ | command sort | command tail -n 1) echo "LoadModule passenger_module ${PASSENGER_ROOT}/ext/apache2/mod_passenger.so" \ | ${cmdProxy} tee "/etc/apache2/mods-available/passenger.load" echo "PassengerRoot ${PASSENGER_ROOT} PassengerRuby /usr/bin/ruby1.8 PassengerDefaultUser www-data" | ${cmdProxy} tee "/etc/apache2/mods-available/passenger.conf"
Activez le module Passenger pour Apache 2:
${cmdProxy} a2enmod passenger
Utilisation
Afin que le module Passenger d'Apache 2 fonctionne correctement, le fichier de configuration d'Apache 2 pour les sites concernés doit contenir:
Options -MultiViews
Utilisation avec a2tools
Renseignez le domaine du site Ruby On Rails:
DOMAIN="rails.domain.com"
Renseignez le chemin d'installation de l'application rails:
INSTALL_PATH="/opt/rails/${DOMAIN}"
Ajoutez l'option adéquate au fichier .htaccess de l'application rails:
command echo "# Passenger module specific options. Options -MultiViews" | ${cmdProxy} tee -a "${INSTALL_PATH}/public/.htaccess"
Créez la configuration Apache 2 du site:
${cmdProxy} a2tools --overrides="FileInfo Options=All,Multiviews" "${DOMAIN}" "${INSTALL_PATH}/public"
Rechargez la configuration d'Apache 2:
${cmdProxy} service apache2 force-reload
Remerciements
- Merci aux développeurs de Phusion Passenger (en).