Mac OSX Lion Apache + RubyOnRails + mod_passenger

J’essaie d’apprendre comment développer une application web avec Ruby On Rails, mais j’ai commis une erreur stupide. J’essaie d’utiliser Phusion Passenger aka mod_rails pour utiliser Apache au lieu de WEBrick; J’ai installé le module via gem et lance le

sudo passenger-install-apache2-module 

commande pour installer passager; puis j’ai édité le fichier http.conf ajoutant

 LoadModule passenger_module /Users/Stopped/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.19/ext/apache2/mod_passenger.so PassengerRoot /Users/Stopped/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.19 PassengerRuby /Users/Stopped/.rvm/wrappers/ruby-1.9.3-p327/ruby 

ajouté le VirtualHost

  ServerName rails.local DocumentRoot "/Users/Stopped/RoR/prova/public"  AllowOverride all Options -MultiViews Order allow,deny Allow from all   

a redémarré Apache avec sudo apachectl restart mais ça ne marche pas 🙁 Si je cherche dans localhost je vois la page “ça marche!” mais si je vais sur rails.local il n’y a pas mon application Rails 🙁

Le passager est chargé

 Apache/2.2.22 (Unix) Phusion_Passenger/3.0.19 DAV/2 PHP/5.4.9 Server at localhost Port 80 

Des idées?

PS: Ceci est la sortie “apachectl -S”

 VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server rails.local (/private/etc/apache2/extra/httpd-vhosts.conf:53) port 80 namevhost rails.local (/private/etc/apache2/extra/httpd-vhosts.conf:53) Syntax OK 

SOLUTION

Uhm … je l’ai résolu, en ajoutant 127.0.0.1 rails.local à mon fichier d’hôtes, mais je ne peux pas comprendre pourquoi; Quelqu’un peut m’expliquer cela? ._.

vous ne pouvez pas utiliser un caractère générique avec localhost dans votre fichier hosts. vous devez spécifier explicitement chaque sous-domaine pour localhost dans votre fichier hosts. Si vous cherchez une alternative, vous pouvez acheter un nom de domaine et pointer ce nom de domaine sur 127.0.0.1 avec un joker. Vous pouvez même aller plus loin et avoir une application squelette qui pointe différents sous-domaines vers différentes applications en mappant les routes.