web-dev-qa-db-fra.com

ne peut pas charger ce fichier - bundler/setup (LoadError) || déployer sur Ubuntu 12.04 x32

J'essaie de déployer mon application Rails avec Nginx, passager sous Ubuntu 12.04 x32. Une fois que tout est terminé, je visite mon application Rails, mais elle me dit "Nous sommes désolés, mais quelque chose s'est mal passé". 

alors je cat /var/log/nginx/error.log, je trouve ces lignes:

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

J'utilise rvm et 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)

et je hava déjà bundler installé

$ bundler -v
Bundler version 1.9.2

et voici mon joyau 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/Ruby-2.0.0-p643@global
  - 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/Ruby-2.0.0-p643@global/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

quelqu'un a-t-il rencontré le même problème? merci

mise à jour: mon /etc/nginx/nginx.conf et /etc/nginx/sites-enabled/blog.conf: https://Gist.github.com/wall2flower/b3f410317585a8803a27https://Gist.github.com/wall2flower/72316e8b437d654e7070

13
luotao

Vous avez sûrement des problèmes avec PATH. À l'intérieur du /etc/nginx/nginx.conf, passager, vous devriez indiquer la version de Ruby où le bundler est installé.

passenger_root /usr/lib/Ruby/vendor_Ruby/phusion_passenger/locations.ini;
passenger_Ruby /home/thomas/.rvm/wrappers/default/Ruby;

Vous pouvez vérifier cela avec la commande

$ which Ruby

Le résultat de cette commande devrait être celui que vous devriez entrer pour passenger_Ruby

Si vous n'avez pas encore installé le bundler, lancez gem install bundler

Assurez-vous également que vous définissez la variable d'environnement dans votre bloc serveur:

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

Vous devez générer binstubs pour résoudre le problème: 

bundle install --binstubs
5
Karol Wojtaszek

Comme le note Karlingen, le problème est le résultat de problèmes PATH. Cependant, si vous utilisez RVM, vous voudrez obtenir votre chemin vers le Ruby correct d'une autre manière ...

La meilleure chose à faire est de suivre le guide du passager pour trouver cette information:

http://www.phusionpassenger.com/library/config/nginx/reference/#setting_correct_passenger_Ruby_value

1
richardun

essayer:

bundle exec passenger start ...
1