2011-04-18 4 views
1

J'ai juste passager d'installation avec Nginx et il semble installer très bien, mais quand je le lance, j'essaie de commencer par:Problème de départ passager avec Nginx

passenger start -e production 

Je reçois:

=============== Phusion Passenger Standalone web server started =============== 
PID file: /root/rails_apps/myapp/tmp/pids/passenger.3000.pid 
Log file: /root/rails_apps/myapp/log/passenger.3000.log 
Environment: production 
Accessible via: http://0.0.0.0:3000/ 

You can stop Phusion Passenger Standalone by pressing Ctrl-C. 
=============================================================================== 
2011/04/18 07:17:27 [error] 9125#0: *4 "/root/rails_apps/myapp/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD/HTTP/1.1", host: "0.0.0.0" 

et je reçois "Impossible de se connecter" lorsque j'essaie d'accéder à mon site dans le navigateur.

Voici configuration nginx.conf

server { 
     listen 80; 
     server_name myapp.com; 
     root /root/rails_apps/myapp/public; # <--- be sure to point to 'public'! 
     passenger_enabled on; 
    } 

des idées?

Répondre

2

Essayez ceci:

sudo passenger start -e production 
+0

Je cours en tant que racine – Tam

+0

essayez de changer la permission du répertoire '/ root/rails_apps/myapp/public' à 755. – Surya

+0

@Surya Le changer en 755 est une mauvaise idée, cela fonctionnerait mais ce n'est pas idéal pour un environnement de production. Vous avez probablement juste besoin de chowner les fichiers en question à nginx: nginx ou n'importe quelle utilisation exécute nginx tout en laissant les fichiers 644. – Alfie

1

depuis le chemin que vous avez spécifié est dans/root (/ root/rails_apps/myapp/public), nginx devrait avoir suffisamment d'autorisations:

user root; dans nginx.conf

vous devriez également commencer à nginx comme super-utilisateur (sudo)

mais il pourrait être préférable de déplacer simplement vos rails app quelque part dans votre répertoire utilisateur et accorder des autorisations nécessaires pour utilisateur par défaut nginx « www-data '

user www-data; 
+0

Je cours en tant que root! dois-je encore faire ça? – Tam

3

cette erreur semble due au fait que l'utilisateur de nginx ne peut pas accéder au fichier mentionné. Cela peut être causé non seulement si/root/rails_apps/myapp/public n'a pas une permission correcte, mais même si l'un des répertoires parents ne l'a pas!

Dans votre nginx.conf vous pouvez voir quelque chose comme:

user nginx; 

http { 
    # blah. 
} 

Parfois paramètre du user peut être différent. Assurez-vous de tous les dossier est disponible par cet utilisateur dans le chemin. Vous pouvez le vérifier par sudo -Hu nginx /bin/bash -l et cat /root/rails_apps/myapp/public/index.html. Testez et testez à nouveau avec cette commande jusqu'à ce que vous ne puissiez pas voir le contenu du fichier.

Une petite explication: avec cette commande sudo, vous démarrez un shell en tant qu'utilisateur nginx. Et avec la commande cat, vous pouvez simuler la lecture du fichier.

Questions connexes