2010-05-21 6 views
4

J'ai un problème avec l'un de nos serveurs Web. Je vais essayer de l'expliquer aussi clairement que possible, mais je ne suis pas à 100% au courant de toute la configuration du serveur.Rails avec passager uniquement en cours de développement

Il y a 2 sites en cours d'exécution côté de l'autre (blcc_preprod et blcc_prod), donc dans les 'sites permis' de apache ce que je dispose d'un fichier 'BLCC' comme ceci:

<VirtualHost *:80> 
    DocumentRoot /opt/dn/blcc/www 
    RailsBaseURI /blcc_preprod 
    RailsBaseURI /blcc_prod 
    RailsEnv production 
</VirtualHost> 

Mes config/environnements /production.log (à la fois) ressemble à ceci (je retire tous les commentaires, parce qu'elle salit avec la mise en page)

config.cache_classes = true 

config.action_controller.consider_all_requests_local = false 
config.action_controller.perform_caching    = true 
config.action_view.cache_template_loading   = true 

config.log_level = :debug 

la chose étrange est que mes dates de journal de production il y a des mois, donc quelque chose est vraiment mal .

Quelqu'un pourrait-il m'aider? Si vous avez besoin de plus d'informations, il suffit de demander.

Merci!

Edit: Error.log de apache montrent la sortie normale pour un événement au serveur (la situation est que les fiches de serveur web vers un autre serveur d'affaires (java) via un cadre) Access.log est vide

contenu de other_vhosts_access.log après que nous surfons à IP/blcc_preprod est le suivant

blcc.localdomain:80 192.168.21.194 - - [25/May/2010:08:33:04 +0200] "GET/ blcc_preprod 
HTTP/1.1" 500 594 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET 
CLR 1.1.4322; .NET CLR 2.0.50727)" 
+0

Avez-vous jamais passé celui-ci? J'ai le même problème. http://stackoverflow.com/questions/9499937/rails-app-on-passenger-works-with-dev-flag-fails-without/9501959#comment12033491_9501959 –

Répondre

0

Je ne pense pas qu'il soit possible d'installer deux applications dans un hôte virtuel travaillant dans différents environnements Rails - au moins pas comme ce.

documentation passagers dit ci-dessous pour le réglage RailsEnv:

« Dans chaque lieu, il peut être spécifiée au plus une fois La valeur par défaut est la production. ».

(http://www.modrails.com/documentation/Users%20guide.html#rails_env)

Donc, il n'y a aucun moyen pour une directive VirtualHost à plusieurs RailsEnv spécifiées.

Cela peut être la raison pour laquelle vous ne voyez qu'une seule application en cours d'exécution (bien que je ne sache pas pourquoi c'est le développement).

Je vous suggère de séparer les applications de production/développement dans des VirtualHosts séparés ou d'utiliser un bloc. Peut-être quelque chose comme ceci:

<VirtualHost *:80> 
    DocumentRoot /opt/dn/blcc/www 
    RailsBaseURI /blcc_preprod 
    RailsBaseURI /blcc_prod 

    <Location /blcc_preprod> 
    RailsEnv development 
    </Location> 

    <Location /blcc_prod> 
    RailsEnv production 
    </Location> 
</VirtualHost> 
+0

Hmm, peut-être que je n'étais pas aussi clair que je le pensais. Les deux applications fonctionnent parfaitement l'une à côté de l'autre en développement. Donc quand j'ajoute 'RailsEnv' développement '' ça marche parfaitement. (Quand je surfe sur ip/blcc_preprod et ip/blcc_prod, les deux sont accessibles) Mais quand je veux passer à la production ne fonctionne pas – Ignace

+0

Ah, question tout à fait différente. :) Avez-vous une réponse du serveur? Vous avez dit que les journaux de production de l'application Rails (log/production.log) n'enregistrent aucune erreur; avez-vous vérifié les logs Apache (error_log et access_log)? –

+0

Oui je l'ai fait, acces_log est vide, error_log a produit quelque chose qui ressemblait à un démarrage normal, mais rien d'autre. Nous travaillons ici avec un serveur d'entreprise distant qui se connecte via un cadre. Le journal des erreurs montre qu'il enregistre tout, utilise un pool et rien de plus ... Très étrange ... – Ignace

1

Erreur se réfère à l'erreur interne.

Alors:

tail -f /var/log/apache2/error_log 

Et essayez d'accéder au site.

Les erreurs vont à là parce que Passenger n'est pas en mesure d'initialiser l'application Rails, donc il pense que l'erreur est quelque chose en dehors de votre application. Très probablement, un module est manquant ou quelque chose est mal initialisé.

1

Utilisation de RoR 3.x?
Essayez

RackEnv development 

ou

RackEnv production 
Questions connexes