Переезд в rbenv перерывы пассажира (nginx)

Я перешел с RVM на rbenv на своем производственном сервере. Я удалил rvm, используя "rvm implode", и установил rbenv, ruby ​​1.9.2, rails, passenger и nginx-module. Я не изменил свой исходный файл nginx.conf, кроме изменения passenger_root следующим образом:

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;

Теперь, когда я пытаюсь запустить свое приложение, я вижу следующую ошибку в error.log:

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

Это ясно указывает на то, что пассажир не запущен, и мое приложение по рельсам не распознается. Когда я пытаюсь вручную запустить пассажир, я получаю следующую ошибку:

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

Я установил nokogiri несколько раз, и я вижу nokogiri в моем списке драгоценных камней. Я не уверен, почему переезд в rbenv сломал пассажира для меня.

2 ответа

Решение

Кажется, что нет совместимости между пассажиром и rbenv (убедитесь, что вы знаете это, прежде чем выстрелить себе в ногу) - поэтому я удалил rbenv и вернулся в RVM...

Можно использовать rbenv, nginx и passenger. Некоторые пошли для общесистемной установки. http://blakewilliams.me/blog/4-system-wide-rbenv-install

В настоящее время я тестирую в своей среде разработки, поэтому, если вы установили rbenv и у вас есть правильный rbenv init в вашем .bashrc:

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

Вы должны gem install passenger чтобы получить прокладки. дела bundle install установить пассажир не даст вам это.

В заключение:

passenger-config --root

даст вам ваш passenger_root путь и:

rbenv which ruby

ваш passenger_ruby дорожка.

Пассажирская прокладка указывает на исполняемый файл, но passenger_root должен быть путь к папке. Я пытался использовать рубиновую прокладку, но она не работает. Я еще не понял почему.

Кстати, у меня есть камень nokogiri в моем Gemfile. О, также если у вас есть .rvmrc и / или config/setup_load_paths.rb это должно быть безопасно удалить их как пассажирский пакет автозагрузки.

Мне все еще нужно сделать немного больше испытаний по этому вопросу, но пока все хорошо.

Другие вопросы по тегам