2009-11-11 5 views
0

J'essaie de faire fonctionner une vieille application 2.1 rails configurée avec le cluster mongrel.rails passager ne démarre pas correctement

passager est correctement installé sur mon système (apache) avec cette configuration

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so 
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5 
PassengerRuby /usr/bin/ruby1.8 

RailsSpawnMethod smart 
PassengerMaxPoolSize 1 
PassengerMaxInstancesPerApp 1 
PassengerPoolIdleTime 2000 
RailsFrameworkSpawnerIdleTime 0 
RailsAppSpawnerIdleTime 0 

mon projet est situé sur

/var/sites/site 

c'est la configuration apache

<Virtualhost tagi:80> 
    ServerName site.com 
    ServerAlias www.site.com 

    DocumentRoot /var/sites/site/current/ 

    #PassengerHighPerformance on 
    ##PassengerMaxRequests 5000 
    PassengerStatThrottleRate 5 

    <Directory /> 
    AllowOverride AuthConfig 
    </Directory> 

    ErrorLog /var/log/apache2/site-error.log 
    CustomLog /var/log/apache2/site-access.log combined 
    ServerSignature Off 
</Virtualhost> 

Avec bâtarde app boot correctement et fonctionne parfaitement. Mais avec Apache2 + Passanger, le démarrage ne fonctionne pas et j'obtiens la liste des répertoires par défaut d'Apache.

ce sont les permissions des fichiers configs

-rw-r----- 1 git web 2.7K 2009-11-11 11:34 boot.rb 
-rw-r----- 1 git web 600 2009-11-11 13:51 database.yml 
-rw-r----- 1 git web 1.7K 2009-11-11 11:34 deploy.rb 
-rw-r----- 1 git web 3.9K 2009-11-11 14:04 environment.rb 
drwxr-x--- 2 git web 4.0K 2009-11-11 11:34 environments 
-rw-r----- 1 git web 754 2009-11-11 11:34 gmaps_api_key.yml 
drwxr-x--- 2 git web 4.0K 2009-11-11 11:34 initializers 
-rw-r----- 1 git web 1.8K 2009-11-11 11:34 routes.rb 

Je n'ai aucune idée. Les journaux Apache sont clairs.

sur mon serveur j'ai déjà 5 application fonctionnant avec la même configuration.

une suggestion?

Répondre

0

Point DocumentRoot dans votre répertoire public. Je ne suis pas sûr de ce qu'est /var/sites/site/current/, mais ce n'est probablement pas ce que vous voulez.

Aussi vous pouvez essayer d'expliquer au passager plus explicitement où vous le souhaitez pour monter l'application rails en mettant RailsBaseURI / dans votre vhost.

Faites un essai et nous pouvons partir de là.

+0

thnx,/current is right (déployé avec capistrano) mais j'ai oublié/public sur mon chemin /var/sites/site/current/public était le bon chemin. j'ai besoin d'une pause :) – Davide

0

A lutté un loooong temps avec celui-ci. La façon dont je l'ai trouvé pour que cela fonctionne, en particulier lors de l'exécution de plusieurs instances de passagers avec des environnements différents (production, mise au point, essai, etc.) est de faire quelque chose comme ceci:

NameVirtualHost *:80 

<VirtualHost *:80> 
     ServerName server.com 
     ServerAlias www.server.com 
     DocumentRoot /var/sites/current/public 
     RailsBaseURI /current 
     RailsEnv production 
</VirtualHost> 

<VirtualHost *:80> 
     ServerName dev.server.com 
     DocumentRoot /var/sites/dev-version/public 
     RailsBaseURI /dev-version 
     RailsEnv development 
</VirtualHost> 

puis des liens sym d'installation de/var/sites/pour pointer vers

lrwxrwxrwx 1 root root 13 Aug 24 17:41 current -> /code/site5 
lrwxrwxrwx 1 root root 19 Aug 24 17:41 test-version -> /code/site-test 
lrwxrwxrwx 1 root root 19 Sep 21 09:41 dev-version -> /code/development 

de cette façon passager peut faire la différence entre les sites que tous leurs chemins DocumentRoot sont différents. Vous ne pouvez pas avoir ce problème si vous pointez directement sur les répertoires de code plutôt que via des liens symboliques.