Installation de Passenger lorsque Nginx est déjà installé; Possible?
Plutôt qu'à une simple question, je crois, est-il possible d'installer passager, nginx est déjà installé sur votre serveur?
Si la réponse est Oui, j'ai déjà réalisé ces actions:
En ce moment même, j'ai déjà installé nginx (pour mes applications PHP) et ensuite, j'ai fait un checkout du passager du dépôt git:
mkdir /repositories
cd /repositories/
git clone https://github.com/FooBarWidget/passenger.git
cd passenger/
puis ajouter cet extrait de /etc/nginx/conf/nginx.conf
http {
...
passenger_root /repositories/passenger;
passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby;
...
}
Cependant lorsque je veux redémarrer nginx j'obtiens l'erreur suivante:
* Starting Web Server nginx
nginx: [emerg] unknown directive "passenger_root" in /etc/nginx/nginx.conf:19
Qui conclut me dire qu'il y a encore quelques config j'ai besoin de fixer, pour nginx être conscient que nous faisons à l'aide de passagers.
Mon serveur bloc
server {
listen 80;
server_name rails.kreatude.com;
root /srv/www/my_test_app;
passenger_enabled on;
}
source d'informationauteur Ayrton
Vous devez vous connecter pour publier un commentaire.
Je pense que votre problème est que le passager module n'est pas présent dans nginx.
Tous les passager en fonction des directives que vous avez décrit (passenger_root, passenger_ruby, passenger_enabled) sont disponibles uniquement lorsque le passager module est attaché de nginx. C'est pourquoi vous devez compiler nginx avec
--add-module='/path/to/passenger-3.0.9/ext/nginx'
.Malheureusement, je ne connais pas de méthode pour permettre à des passagers de module sans ré-installation de nginx. Mais, selon http://wiki.nginx.org/Modules"Nginx modules doivent être sélectionnées au moment de la compilation.", il pourrait donc y avoir une chance qu'il n'y a pas un moyen de le faire.
Passagers docs le chapitre "Générique de l'installation, de mise à niveau et le déclassement de la méthode: via RubyGems" discute de cela. Fondamentalement, une fois le Passager gem est installé, nginx doit être recompilé (et ensuite utilisé à la place de l'yum/apt-get-installé nginx si il en existe un). Passager de la compilation ou de l'utilitaire de configuration "à passagers l'installation de nginx-module" le fait pour vous (c'est une partie du Passager gem), et il inclut automatiquement les commutateurs nécessaires pour les Passagers. Il vous donne également la possibilité d'ajouter vos propres commutateurs (comme pour les modules supplémentaires, ou pour activer/désactiver NGiNX les fonctionnalités intégrées).
Avec rvmvous pouvez le faire simplement en cours d'exécution
rvmsudo passenger-install-nginx-module
.Pour plus de détails: https://www.digitalocean.com/community/tutorials/how-to-install-rails-and-nginx-with-passenger-on-ubuntu.
Je confirme ion-br réponse, je suis face au même genre de problèmes et PhusionPassenger du site:
La seule solution est donc de réinstaller correctement Nginx, si votre machine est une AWS IAM exemple, la solution réside ici.
passenger_enabled on;
dans le serveur http, ou l'emplacement de bloc.http://modrails.com/documentation/Users%20guide%20Nginx.html#_important_deployment_options