«Нет такого файла для загрузки - bundler / setup» на сервере Apache / Passenger

Я пытаюсь развернуть черновик моего первого приложения на Rails. Он прекрасно работает на моем локальном сервере WEBRick.

Тем не менее, на моем Ubuntu VPS работает Apache2 & Пассажир, когда я перехожу к приложению в своем браузере, я получаю:

Error message:
no such file to load -- bundler/setup
Exception class:
LoadError

Со следующим обратным следом:

0   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
1   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
2   /home/user/public/foo.com/config/boot.rb    6   
3   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
4   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
5   /home/user/public/foo.com/config/application.rb 1   
6   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
7   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
8   /home/user/public/foo.com/config/environment.rb 2   
9   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
10  /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
11  config.ru   3   
12  /usr/lib/ruby/vendor_ruby/rack/builder.rb   51  in `instance_eval'
13  /usr/lib/ruby/vendor_ruby/rack/builder.rb   51  in `initialize'
14  config.ru   1   in `new'
15  config.ru   1   

Приложение было построено с Ruby v1.9.3 (или так я думал), который яустановлен в Ubuntu (в корне приложения,ruby -v возвращаетсяruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]).

Согласноэтот вопросЯмы бегаемgem install bundle а такжеbundle install в корне приложения. Я'мы также импортировали правильныеgemset с моей локальной машины в корень приложения VPS.

Согласноэтот вопросЯ попытался изменить драгоценный камень на/home/user/.rvm/gems/[email protected] (где foo - это имя используемого набора гемов), но это только увеличило время возврата.

Любая помощь в дальнейшем устранении неполадок, это будет высоко ценится!

РЕДАКТИРОВАТЬ: Я наконец-то запустил свое приложение, удалив Rails, RVM, Ruby (версия RVM) и Пассажир перед переустановкой Rails, Passenger & Рубин (но не RVM).

 amacy26 окт. 2012 г., 22:54
@ Джеспер да, ямы бегаемbundle install
 Jesper26 окт. 2012 г., 21:22
Просто чтобы убедиться: тымы бегаемbundle install, право?
 Tintin8123 мая 2014 г., 12:18
Как вы это исправили?

Ответы на вопрос(3)

Если вы не уверены, какое значение установить для passenger_ruby, вы можете узнать правильное значение следующим образом.

Во-первых, выясните местоположение инструмента для настройки пассажиров и запишите его:

    which passenger-config
    /opt/passenger/bin/passenger-config

Затем активируйте интерпретатор Ruby (и, если применимо, набор гемов), который вы хотите использовать. Например, если вы используете RVM и используете Ruby 2.2.1, вы можете запустить это:

    rvm use 2.2.1

Наконец, вызовите passenger-config с его полным путем, передав в качестве параметра --ruby-command:

    /opt/passenger/bin/passenger-config --ruby-command
    passenger-config was invoked through the following Ruby interpreter:
      Command: /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby
      Version: ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
      To use in Apache: PassengerRuby /usr/local/rvm/wrappers/ruby-1.8.7-   p358/ruby
      To use in Nginx : passenger_ruby /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby
      To use with Standalone: /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby /opt/passenger/bin/passenger start

    ## Notes for RVM users
    Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config --ruby-command'.

Выходные данные сообщают вам, какое значение установить.

Теперь перейдите в файл passenger.conf в каталог / etc / apache2 / mods-available и вставьте необходимые строки, показанные выше.

Теперь выполните следующие команды, и это сработало для меня,

    a2dismod passenger
    a2enmod passenger
    service apache2 restart

/etc/apache2/mods-available/passenger.conf изменить пути к ruby 1.9.3?

Дон»забытьa2dismod passenger а такжеa2enmod passenger как только вы это сделаете.

 amacy27 окт. 2012 г., 17:49
Спасибо за ваш ответ. Основываясь на разговоре в #rubyonrails вчера вечером, я верю, что проблема связана с тем, что Passenger не может найти версию Ruby для RVM. Однако внесение изменений, которые вы предлагаете в/etc/apache2/mods-available/passenger.conf файл дает мне 500 ошибок. Там'В журнале ошибок apache нет информации об ошибке.

ный файл:

<virtualhost *:80="">
  ServerName foo.com
  SetEnv GEM_HOME /home/user/.rvm/gems/ruby-1.9.3-p286
  DocumentRoot /home/user/public/foo.com/public
  <directory home="" user="" public="" foo.com="">
    AllowOverride all
    Options -MultiViews
  </directory>
</virtualhost>

Проблема, кажется, в том, что когда вы выполняетеbundle install он использует rum ruby, а когда вы выполняете пассажир, он все еще использует ruby 1.8

 Rafael Martinez26 окт. 2012 г., 22:12
Установка GEM_HOME для каждого виртуального хоста отдельно также позволяет вам иметь разные приложения, использующие разные версии ruby и gems, так чтолучшее место, чтобы определить это.
 amacy26 окт. 2012 г., 23:20
Спасибо за ответ. Я сделал это дополнение & перезапустил Apache, но яЯ все еще получаю ту же ошибку с той же обратной трассировкой.
 mpapis27 окт. 2012 г., 07:24
Неправильная настройка RubyRoot для пассажира, эта настройка не должна влиять на пассажира.

Ваш ответ на вопрос