2011-09-30 11 views
14

Raczej proste pytanie, jak sądzę, czy możliwe jest zainstalowanie pasażera, gdy nginx jest już zainstalowany na twoim serwerze internetowym?Instalowanie Pasażera, gdy Nginx jest już zainstalowany; Możliwy?

Jeśli odpowiedź brzmi Tak, ja już przeprowadzone następujące działania:

W tej chwili mam już nginx zainstalowany (dla mojej aplikacji PHP), a następnie Zrobiłem kasę z git repozytorium pasażera:

mkdir /repositories 
cd /repositories/ 
git clone https://github.com/FooBarWidget/passenger.git 
cd passenger/ 

a następnie dodać ten fragment do /etc/nginx/conf/nginx.conf

http { 
     ... 
     passenger_root /repositories/passenger; 
     passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby; 
     ... 
    } 

jednak gdy chcę uruchomić ponownie nginx pojawia się następujący błąd:

* Starting Web Server nginx 
nginx: [emerg] unknown directive "passenger_root" in /etc/nginx/nginx.conf:19 

Co mnie podsumowuje, że nadal muszę skonfigurować konfigurację, aby nginx mógł wiedzieć, że używamy pasażera.

Mój blok serwer

server { 
    listen 80; 
    server_name rails.kreatude.com; 
    root /srv/www/my_test_app; 
    passenger_enabled on; 
} 

Odpowiedz

17

Myślę, że problemem jest to, że moduł pasażer nie jest obecny w nginx.

Wszystkie opisane przez ciebie dyrektywy pasażerskie (passenger_root, passenger_ruby, passenger_enabled) są dostępne tylko, gdy moduł pasażerski jest podłączony do nginx. Dlatego musisz skompilować nginx z --add-module='/path/to/passenger-3.0.9/ext/nginx'.

Niestety, nie znam żadnej metody włączenia modułu pasażera bez ponownej instalacji nginx. Ale, zgodnie z http://wiki.nginx.org/Modules, "moduły Nginx muszą być wybrane podczas kompilacji.", Więc może być szansa, że ​​nie ma sposobu, aby to zrobić.

+0

po długim czasie poszukiwania, to jest rozwiązanie! tks –

2

W dokumencie dla pasażerów omówiono to w rozdziale "Generic installation, upgrade and downgrade method: via RubyGems". Zasadniczo, po zainstalowaniu klejnotu Pasażera, nginx musi zostać zrekompilowany (a następnie użyty zamiast yum/apt-get-nginx, jeśli taki istnieje). Narzędzie do kompilacji/konfigurowania pasażera "Pasażer-instalacja-moduł-nginx" robi to za ciebie (jest to część klejnotu Passenger) i automatycznie zawiera niezbędne przełączniki Pasażera. Daje również opcję dodawania własnych przełączników (takich jak dodatkowe moduły lub włączanie/wyłączanie wbudowanych funkcji NGiNX).

0

Potwierdzam odpowiedź ION-BR jest, jestem w obliczu tego samego rodzaju problemów i strona phusion passenger stwierdza:

Before you begin, you should know that installing Passenger in its Nginx integration mode involves extending Nginx with code from Passenger. However, Nginx does not support loadable modules. This means that in order to install Passenger's Nginx integration mode, it is necessary to recompile Nginx from source.

Jedynym rozwiązaniem jest więc właściwie ponowna Nginx, jeśli urządzenie jest instancją AWS AMI rozwiązanie leży here.

Powiązane problemy