2011-10-23 16 views
6

Przeprowadziłem się z RVM do rbenv na moim serwerze produkcyjnym. Odinstalowałem rvm za pomocą "rvm implode" i zainstalowałem rbenv, ruby ​​1.9.2, szyny, moduł pasażerski i nginx. nie zostały zmodyfikowane mój originlal nginx.conf oprócz zmiany passenger_root następująco:Przeprowadzka do rbenv łamie pasażera (nginx)

1st Try: 
passenger_root /root/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/passenger-3.0.9; 
passenger_ruby /root/.rbenv/versions/1.9.2-p290/bin/ruby; 
2nd Try: 
passenger_root /root/.rbenv/shims/passenger; 
passenger_ruby /root/.rbenv/shims/ruby; 

Teraz, gdy próbuję uruchomić mój wniosek widzę następujący błąd w error.log:

[error] 1291#0: *105 open() "/home/passenger/grabber/current/public/view" failed (2: No such file or directory) 

To wyraźnie wskazuje, że pasażer nie uruchomił się, a moja aplikacja szynowa nie została rozpoznana. Kiedy próbuję uruchomić ręcznie pasażera, pojawia się następujący błąd:

[ pid=17605 thr=70022120 file=utils.rb:176 time=2011-10-23 23:40:41.917 ]: *** Exception LoadError in PhusionPassenger::Rack::ApplicationSpawner (libruby.so.1.9: cannot open shared object file: No such file or directory - /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/nokogiri.so) (process 17605, thread #<Thread:0x858e7d0>): 
from /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 

Mam zainstalowany Nokogiri kilka razy i widzę nokogiri w moim liście gem. Nie jestem pewien, dlaczego przeniesienie się do Rbenv złamało dla mnie pasażera.

+0

Każda pomoc tutaj? – Ved

+0

W każdym razie, usunąłem rbenv i wróciłem do RVM. Dobry riddance. – Ved

Odpowiedz

-12

Wydaje się, że brak kompatybilności pomiędzy pasażerem a rbenv (upewnij się, że wiesz to zanim strzelać sobie w stopę) - więc usunąłem rbenv i wrócił do RVM ...

+2

To jest po prostu złe. – briangonzalez

+1

Fałszywe twierdzenie. pasażer i rbenv działają dobrze. – gdurelle

19

Możliwe jest użycie rbenv, nginx i pasażer. Niektórzy poszli na instalację ogólnosystemową. http://blakewilliams.me/blog/4-system-wide-rbenv-install

jestem obecnie testuje na moim rozwoju środowiska tak, zakładając, że masz zainstalowany rbenv i mają prawidłową rbenv inicjujący .bashrc:

gem install passenger 
rbenv rehash 
sudo bash -c "source ~/.bashrc && passenger-install-nginx-module" 

Musisz gem install passenger dostać podkładek. Wykonanie bundle install, aby zainstalować pasażera, nie da ci tego.

Wreszcie:

passenger-config --root 

daje ścieżkę passenger_root oraz:

rbenv which ruby 

ścieżka passenger_ruby.

Podkładka pasażera wskazuje na plik wykonywalny, ale passenger_root musi być ścieżką do folderu. Próbowałem używać ruby ​​shim, ale to nie działa. Nie zastanawiałem się jeszcze dlaczego.

BTW, mam klejnot nokogiri w mojej Gemfile. Och, także jeśli masz .rvmrc i/lub config/setup_load_paths.rb powinno być bezpiecznie usunąć je jako autoloadę pasażera.

Nadal muszę zrobić trochę więcej testów na ten temat, ale do tej pory tak dobrze.

+0

Zmieniłem link do niedawnego wpisu na blogu, ale nie potwierdziłem, że działa. Jeśli ktokolwiek potwierdzi, daj mi znać. – PhilT

+1

"Obsługa" dla rbenv wygląda na to, że obsługuje rzeczywistą funkcjonalność rbenv, która ma mieć różne pliki binarne dla Ruby dla każdej aplikacji Ruby i używa konfiguracji każdej aplikacji, aby ją wybrać. Musisz ręcznie ominąć rbenv i skonfigurować Pasażera za pomocą specyficznego binarnego Ruby, a możesz podać tylko jedną binarną ruby ​​dla wszystkich Pasażerów. @Ved jest zasadniczo poprawne, nie jest obsługiwane. Ale też nie jest rvm. –

Powiązane problemy