2010-04-28 6 views
5

J'ai fait des recherches sur celui-ci et trouvé des références à des problèmes similaires ici et là, mais aucun d'entre eux n'a encore débouché sur une solution. J'ai installé passager (2.2.11) et nginx (0.7.64) et quand je commence des choses et heurte une URL de Rails, j'obtiens une page d'erreur m'informant d'une erreur de chargement:Problème de passager: "pas de fichier à charger" -/config/environment

aucun tel fichier à charger -/path/to/app/config/environnement

D'après ce que j'ai trouvé en ligne, cela semble être une sorte d'erreur d'utilisateur/permissions, mais j'ai essayé toutes les corrections logiques: j'ai fait Assurez-vous que /config/environment.rb n'appartient pas à root, mais à un utilisateur webapp. J'ai essayé de définir passenger_default_user, j'ai essayé de configurer passenger_user_switching. J'ai même essayé de définir l'utilisateur nginx, même si cela ne devrait pas avoir beaucoup d'importance. J'ai obtenu des résultats différents, mais rien n'a vraiment fonctionné. J'espère que quelqu'un aura la combinaison magique de paramètres et d'autorisations pour cela. Je peux essayer de revenir à une version antérieure de Passenger, parce que je n'ai jamais eu ce problème auparavant; ça fait un petit moment que j'ai installé Passenger.

Merci pour vos suggestions.

EDITED: Voir ci-dessous pour la réponse, je suis tombé sur.

+0

Vous devez déplacer la solution à votre question vers sa propre réponse, puis marquer la réponse comme acceptée. –

Répondre

2

Naturellement, il m'a juste fallu poster la question pour tomber sur la réponse. Afin de fournir des informations à toute personne qui recherche sur ce problème, je vais poster quelques détails ici.

Les lignes correspondantes de la nginx.conf:

www-données d'utilisateur; # pour que nginx ne s'exécute pas en tant que root

passenger_default_user www-data; # de même pour le passager

root/opt/foo/app/current/public; La clé à ce stade est de s'assurer que les fichiers d'application sont la propriété de www-data, en particulier config/environment.rb car apparemment Passenger regarde son propriétaire pour déterminer qui exécuter. Cela peut signifier que l'entrée passenger_default_user n'est pas pertinente? Mais il est bon de l'avoir comme document d'intention de toute façon, peut-être.

Enfin, assurez-vous que les répertoires parents de votre application sont tous accessibles par www-data - dans mon cas, la configuration par défaut du système avait laissé un répertoire 0700, que j'avais manqué.

+0

Que diriez-vous de mettre en place un * PassengerUser * comme indiqué dans la [documentation] (http://www.modrails.com/documentation/Users%20guide%20Apache.html#_passengeruser_lt_username_gt)? – JJD

1

Le Passager moderne préfère le Rack to Rails. Si vous avez un config.ru dans votre application Rails, Passenger va essayer de le charger en tant qu'application Rack. Cela peut causer des problèmes. En particulier, votre message d'erreur se réfère à config/environment - Notez l'absence de l'extension .rb typique dans une application Rails.

Essayez de déplacer config.ru si cela existe.

+1

Merci pour l'idée - j'avais déjà vu une note sur la préférence Rack ailleurs, mais c'est une vieille application Rails. L'absence de l'extension .rb m'a semblé bizarre, et je n'ai encore trouvé aucune explication à ce sujet ... – Masonoise

+0

Eh bien, j'ai essayé et maintenant mon serveur est 100% statique ... – Antzi

Questions connexes