Переезд на rbenv перерывы пассажира (nginx) - PullRequest
8 голосов
/ 23 октября 2011

Я перешел из 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)

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

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

21 голосов
/ 22 декабря 2011

Можно использовать 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 должен быть путем к папке.Я пытался использовать рубиновую прокладку, но она не работает.Я еще не понял почему.

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

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

0 голосов
/ 24 октября 2011

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

...