2015-04-09 19 views
9

Provo a distribuire la mia app per rails con Nginx, passenger su Ubuntu 12.04 x32. dopo che tutto è finito, visito la mia app per i binari, ma mi dice "Siamo spiacenti, ma qualcosa è andato storto".non può caricare tale file - bundler/setup (LoadError) || deploy su Ubuntu 12.04 x32

poi ho cat /var/log/nginx/error.log, trovo queste linee:

Message from application: cannot load such file -- bundler/setup (LoadError) 
/home/thomas/.rvm/rubies/ruby-2.0.0- p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
/home/thomas/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:278:in `block in run_load_path_setup_code' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:381:in `running_bundler' 
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:276:in `run_load_path_setup_code' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:99:in `preload_app' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:157:in `<module:App>' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>' 
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>' 

Io uso rvm e rbenv

$ ruby -v 
ruby 2.0.0p643 (2015-02-25 revision 49749) [i686-linux] 
$ rbenv versions 
system 
* 2.0.0-p643 (set by /home/thomas/.rbenv/version) 

e ho hava già installato bundler

$ bundler -v 
Bundler version 1.9.2 

Ed ecco il mio gioiello env:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.4.6 
    - RUBY VERSION: 2.0.0 (2015-02-25 patchlevel 643) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/thomas/.rvm/gems/ruby-2.0.0-p643 
    - RUBY EXECUTABLE: /home/thomas/.rvm/rubies/ruby-2.0.0-p643/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/thomas/.rvm/gems/ruby-2.0.0-p643/bin 
    - SPEC CACHE DIRECTORY: /home/thomas/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /home/thomas/.rvm/rubies/ruby-2.0.0-p643/etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/thomas/.rvm/gems/ruby-2.0.0-p643 
    - /home/thomas/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /home/thomas/.rvm/gems/ruby-2.0.0-p643/bin 
    - /home/thomas/.rvm/gems/[email protected]/bin 
    - /home/thomas/.rvm/rubies/ruby-2.0.0-p643/bin 
    - /home/thomas/.rvm/bin 
    - /home/thomas/.rbenv/bin 
    - /home/thomas/.rbenv/shims 
    - /home/thomas/.rbenv/bin 
    - /usr/local/sbin 
    - /usr/local/bin 
    - /usr/sbin 
    - /usr/bin 
    - /sbin 
    - /bin 
    - /usr/games 

qualcuno ha riscontrato lo stesso problema? grazie

aggiornamento: mia /etc/nginx/nginx.conf e /etc/nginx/sites-enabled/blog.conf: https://gist.github.com/wall2flower/b3f410317585a8803a27 https://gist.github.com/wall2flower/72316e8b437d654e7070

+0

Incolla il tuo /etc/nginx/nginx.conf e il tuo sito conf. – karlingen

+0

Ho analizzato questa riga per capire e aggiornato con il collegamento:) – luotao

risposta

10

Sei sicuro avere alcuni problemi di percorso. All'interno di /etc/nginx/nginx.conf, per i passeggeri, dovresti puntare alla versione ruby ​​in cui è installato il bundler.

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; 
passenger_ruby /home/thomas/.rvm/wrappers/default/ruby; 

È possibile controllare questo con il comando

$ which ruby 

L'output di questo comando dovrebbe essere quello che si deve inserire per passenger_ruby

Se non avete installato bundler ancora andare avanti e eseguire gem install bundler

Assicurarsi inoltre di impostare la variabile di ambiente nel blocco del server:

server { 
    listen 80 default; 
    server_name blog.wall2flower.me; 
    root /var/www/blog/current/public; 
    passenger_enabled on; 
} 
+0

https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#PassengerRuby ringrazia il tuo aiuto, con il link sopra, I ho risolto i miei problemi:) – luotao

0

prova:

bundle exec passenger start ... 
+0

Provo: 'bundle exec passenger start RAILS_ENV = production', ottengo informazioni sull'errore: https: //gist.github.com/wall2flower/17d0ab44417aeb31aaa9 – luotao

+0

try' bundle exec passeggero start -e production -d' –

+0

Ho provato, e ora posso visitato succed example.com:3000.: D – luotao

4

È necessario GENERATE binstubs per risolvere il problema:

bundle install --binstubs 
Problemi correlati