2011-10-23 14 views
6

Pasé de RVM a rbenv en mi servidor de producción. Desinstalé rvm usando "rvm implode" e instalé rbenv, ruby ​​1.9.2, rails, passenger y nginx-module. no he modificado mi nginx.conf originlal aparte de cambiar el passenger_root de la siguiente manera:Pasar a rbenv breaks pasajero (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; 

Ahora, cuando trato de ejecutar mi aplicación veo el siguiente error en error.log:

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

Esto indica claramente que el pasajero no se ha lanzado y mi aplicación de rieles no es reconocida. Cuando intento iniciar manualmente pasajero, me sale el siguiente error:

[ 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' 

he instalado varias veces Nokogiri y puedo ver en mi lista nokogiri joya. No estoy seguro de por qué mudarse a rbenv ha roto pasajeros para mí.

+0

¿Alguna ayuda aquí? – Ved

+0

De todos modos, eliminé rbenv y volví a RVM. Buen viaje. – Ved

Respuesta

-12

No parece haber ninguna compatibilidad entre pasajeros y rbenv (asegúrese de saber esto antes de disparar en el pie) - por lo que me quita rbenv y se trasladó de nuevo a RVM ...

+2

Esto es simplemente incorrecto. – briangonzalez

+1

Afirmación falsa. el pasajero y el rbenv trabajan juste fine. – gdurelle

19

Es posible utilizar rbenv, nginx y pasajero. Algunos han optado por una instalación en todo el sistema. http://blakewilliams.me/blog/4-system-wide-rbenv-install

estoy probando actualmente en mi entorno de desarrollo por lo que, en el supuesto de haber instalado rbenv y tienen el init rbenv correcto en su .bashrc:

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

Debe gem install passenger para conseguir las cuñas. Hacer bundle install para instalar pasajeros no le dará estos.

Por último:

passenger-config --root 

le dará su trayectoria y passenger_root:

rbenv which ruby 

su camino passenger_ruby.

El calce del pasajero apunta al ejecutable, pero passenger_root debe ser una ruta a la carpeta. He intentado usar la cuña de rubí, pero no funciona. No he investigado por qué todavía.

Por cierto, tengo la gema nokogiri en mi Gemfile. Ah, también si tiene .rvmrc y/o config/setup_load_paths.rb debería ser seguro eliminarlos como paquete de autocargadores de pasajeros.

Todavía tengo que hacer un poco más de pruebas sobre esto, pero hasta ahora todo bien.

+0

He cambiado el enlace a una publicación de blog reciente pero no he confirmado que funcione. Si alguien confirma, házmelo saber. – PhilT

+1

"Soporte" para rbenv parece que admitiría la funcionalidad real de rbenv, que es tener diferentes binarios de ruby ​​para cada aplicación de Ruby, y usar la configuración de cada aplicación para seleccionarla. Debe omitir manualmente rbenv y configurar Passenger con un binario Ruby específico, y solo puede especificar un binario Ruby para todo Passenger. @Ved es esencialmente correcto, no es compatible. Pero tampoco lo es rvm. –

Cuestiones relacionadas