2011-10-23 16 views
6

Sono passato da RVM a rbenv sul mio server di produzione. Ho disinstallato rvm usando "rvm implode" e installato rbenv, ruby ​​1.9.2, rails, passenger e nginx-module. Non ho modificato il mio nginx.conf originlal a parte cambiare il passenger_root come segue:Spostamento su rbenv breaks passenger (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; 

Ora, quando provo a fare funzionare la mia applicazione vedo il seguente errore in error.log:

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

Questo indica chiaramente che il passeggero non è stato lanciato e la mia app non è stata riconosciuta. Quando provo ad avviare manualmente passeggero, ottengo il seguente errore:

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

ho installato diverse volte Nokogiri e posso vedere nokogiri nella mia lista gemma. Non sono sicuro del motivo per cui trasferirsi a Rbenv ha rotto i passeggeri per me.

+0

Qualsiasi aiuto qui? – Ved

+0

Ad ogni modo, ho rimosso rbenv e spostato di nuovo in RVM. Buona liberazione. – Ved

risposta

-12

Non sembra esserci alcuna compatibilità tra passeggeri e rbenv (assicurarsi di sapere questo prima si spara in un piede) - così ho rimosso rbenv e si è trasferito di nuovo a RVM ...

+2

Questo è semplicemente sbagliato. – briangonzalez

+1

False affermazione. il passeggero e il rbenv funzionano bene. – gdurelle

19

E 'possibile utilizzare rbenv, nginx e passeggero. Alcuni sono andati per un'installazione a livello di sistema. http://blakewilliams.me/blog/4-system-wide-rbenv-install

Attualmente sto testando il mio ambiente di sviluppo in modo, a patto di aver installato rbenv e hanno la corretta init rbenv nel .bashrc:

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

Devi gem install passenger per ottenere gli spessori. Fare bundle install per installare il passeggero non ti darà questi.

Infine:

passenger-config --root 

vi darà il vostro percorso passenger_root e:

rbenv which ruby 

tuo passenger_ruby percorso.

Lo spessore del passeggero indica l'eseguibile ma passenger_root deve essere un percorso della cartella. Ho provato a utilizzare lo spessore del rubino ma non funziona. Non ho ancora approfondito perché.

BTW, ho la gemma nokogiri nel mio Gemfile. Oh, anche se hai .rvmrc e/o config/setup_load_paths.rb dovrebbe essere sicuro di rimuoverli come bundle di autoloads passeggeri.

Ho ancora bisogno di fare un po 'più di test su questo, ma finora tutto bene.

+0

Ho cambiato il link a un post del blog recente ma non ho confermato che funzioni. Se qualcuno conferma, fammi sapere. – PhilT

+1

Il "supporto" per rbenv sembra supportare l'effettiva funzionalità di rbenv, che consiste nell'avere diversi file binari dei rubini per ciascuna applicazione Ruby e utilizzare la configurazione di ciascuna applicazione per selezionarla. Devi bypassare manualmente rbenv e configurare Passenger con uno specifico binario Ruby, e puoi specificare solo un ruby ​​binary per tutto il Passenger. @Ved è sostanzialmente corretto, non è supportato. Ma nessuno dei due è rvm. –

Problemi correlati