Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Apache 2 / Installer le module Phusion Passenger pour Apache 2 sur Debian

Installer le module Phusion Passenger pour Apache 2 sur Debian

Par Pierre-Yves Landuré Dernière modification 11/11/2017 09:44

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 :

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