Ich versuche, meine Rails-App mit Nginx, dem Passagier unter Ubuntu 12.04 x32, bereitzustellen. Nachdem alles erledigt ist, besuche ich meine Rails-App, aber es sagt mir "Es tut uns leid, aber etwas ist schief gelaufen."
dann cat /var/log/nginx/error.log
, finde ich diese Zeilen:
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>'
Ich benutze rvm und 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)
und ich habe bereits Bundler installiert
$ bundler -v
Bundler version 1.9.2
und hier ist mein Juwel 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
hat jemand dasselbe Problem erlebt? Danke
update: Mein /etc/nginx/nginx.conf
und /etc/nginx/sites-enabled/blog.conf
: https://Gist.github.com/wall2flower/b3f410317585a8803a27https://Gist.github.com/wall2flower/ 72316e8b437d654e7070
Sie haben sicher einige PFAD-Probleme. Im /etc/nginx/nginx.conf
für Passagiere sollten Sie auf die Ruby-Version verweisen, in der Bundler installiert ist.
passenger_root /usr/lib/Ruby/vendor_Ruby/phusion_passenger/locations.ini;
passenger_Ruby /home/thomas/.rvm/wrappers/default/Ruby;
Sie können dies mit dem Befehl überprüfen
$ which Ruby
Die Ausgabe dieses Befehls sollte diejenige sein, die Sie für passenger_Ruby
eingeben sollten.
Wenn Sie noch keinen Bundler installiert haben, führen Sie gem install bundler
aus.
Stellen Sie außerdem sicher, dass Sie die Umgebungsvariable in Ihrem Serverblock festlegen:
server {
listen 80 default;
server_name blog.wall2flower.me;
root /var/www/blog/current/public;
passenger_enabled on;
}
Sie müssen binstubs
generieren, um das Problem zu beheben:
bundle install --binstubs
Wie Karlingen anmerkt, ist das Problem das Ergebnis von PATH-Problemen. Wenn Sie jedoch RVM verwenden, möchten Sie Ihren Weg zum richtigen Ruby auf andere Weise erreichen ...
Am besten befolgen Sie die Anweisungen des Passagiers, um diese Informationen zu finden:
versuchen:
bundle exec passenger start ...