rails digitalocean deploy app ruby-on-rails nginx passenger rbenv

ruby-on-rails - digitalocean - nginx rails



Mudanza a rbenv rompe pasajeros(nginx) (2)

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 nGLx.conf de originlal aparte de cambiar la raíz_transportada de la siguiente manera:

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 intento 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 el pasajero manualmente, aparece 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 nokogiri varias veces y puedo ver nokogiri en mi lista de gemas. No estoy seguro de por qué mudarse a rbenv ha roto pasajeros para mí.


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

Actualmente estoy probando en mi entorno de desarrollo así que, suponiendo que haya instalado rbenv y tenga el init de rbenv correcto en su .bashrc :

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

Debe gem install passenger para obtener las calzas. Hacer la bundle install para instalar al pasajero no le dará estos.

Finalmente:

passenger-config --root

le dará su ruta de passenger_root y:

rbenv which ruby

tu ruta de 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 autocarga de pasajeros.

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


Parece que no hay compatibilidad entre el pasajero y el rbenv (asegúrese de saber esto antes de dispararse en el pie), así que eliminé el rbenv y volví a RVM ...