Rails 3.1, nginx, index de répertoire des passagers interdit
J'obtiens l'erreur suivante dans nginx (avec un 403) lorsque je visite .com:
[error] 5384#0: *1 directory index of "/u/apps/<app-name>/current/public/" is forbidden
Je suis sur Ubuntu 10.04 et je ne peux pas pour la vie de moi nginx, des Passagers, des Rails 3.1, et Capistrano jouer gentiment.
Je suis le déploiement de /u avec Capistrano. Tout en /u est 755, détenue par l'application de l'utilisateur.
/u/apps//actuel/public/a tous mes biens, le favicon, et tout ce que vous attendez.
Quand j'ajoute autoindex on
de nginx.conf-je obtenir une liste du public/des répertoire, ce qui m'amène à croire que je n'ai pas de problème d'autorisation.
Mon nginx.fichier conf par défaut est attendre pour:
server {
listen 80;
server_name <app-name>.com;
passenger_enabled on;
root /u/apps/<app-name>/current/public/;
}
Et mon Capistrano déployer.rb fichier a rien d'inhabituel.
Des idées pourquoi l'application rails ne semble pas être le départ?
source d'informationauteur alexlod
Vous devez vous connecter pour publier un commentaire.
Bien, j'ai répondu à ma propre question. J'ai été absent passenger_ruby et passenger_root configurations dans mon nginx.fichier conf. Notez que le passenger_ruby chemin doit être le wrapper si vous êtes à l'aide de RVM.
Si vous avez déjà
passenger_root
etpassenger_ruby
dans votrenginx.conf
mais avoir cette erreur, vous devez avoir quelques blocs d'emplacement. Ensuite, vous devez spécifierpassenger_enabled on;
à l'intérieur de chaque emplacement de bloc.Dans le cas où vous êtes en cours d'exécution dans ce Passager avec les 5+ et votre application Rails est un 2.3.x application, vous devez ajouter un
config.ru
fichier de votre application:Plus de détails dans la annonce officielle et github billet.
Je sais que l'OP question était sur les Rails 3.1 spécifiquement mais je voulais inclure ce depuis la sortie est identique et de recherches m'a conduit à ce post.
Désolé de répondre à une vieille question, mais il semble pertinente (au moins pour moi 😉 )
J'ai eu un problème similaire et parviennent à le résoudre grâce à ce post, mais d'une manière différente.
Alternativement, vous pouvez de configuration /etc/nginx/nginx.conf pour utiliser:
Et puis assurez-vous que l'emplacement.ini est actuel en cours d'exécution:
Comme l'a dit, cela a fonctionné pour moi, même si je ne suis pas un expert, peut-être que je suis en train de jouer avec les mauvais paramètres.