Проблема с запуском приложения ruby ​​под пассажиром с rvm - PullRequest
0 голосов
/ 08 апреля 2011

Я переключил приложение ruby ​​(используя Thoth, который, в свою очередь, использует Ramaze), чтобы работать внутри комбо rvm ruby ​​@ gemset с bundler.Я могу получить доступ к его консольной версии, так что он рад, что у него есть драгоценные камни.Однако, когда я пытаюсь получить доступ к нему через сервер (через пассажира по nginx), я получаю эту ошибку от пассажира:

Не удалось найти activesupport-2.3.8 ни в одном из источников (Bundler :: GemNotFound)

Я не понимаю этого, так как у меня установлена ​​активная поддержка 2.3.8 в наборе гемов приложения в rvm.Возможно, пассажир не знает о rvm или знает, как правильно использовать rvm?Я не уверен, как пассажир подключается к моему приложению и нужно ли ему знать, например, о rvm.Единственная ссылка на пассажира, которую я видел, находится в моем конфигурационном блоке nginx, где я говорю passenger_enabled on;

У кого-нибудь еще были проблемы такого рода?

max

РЕДАКТИРОВАТЬ: некоторые дополнительные сведения о моей настройке:

Мое приложение находится в /var/www/apps/akrotoski Это находится в наборе rvm / gemset под названием ruby-1.8.7-p302@akrotoski

Мне только что пришло в голову, что это может быть проблема сnginx работает под root.Если я переключаюсь на root и выполняю echo $PATH, я получаю

/opt/ruby-enterprise-1.8.7-2011.01/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Если я echo $PATH в rvm моего приложения, я получаю

/home/deploy/.rvm/gems/ruby-1.8.7-p302@akrotoski/bin:/home/deploy/.rvm/gems/ruby-1.8.7-p302@global/bin:/home/deploy/.rvm/rubies/ruby-1.8.7-p302/bin:/home/deploy/.rvm/bin:/opt/ruby-enterprise-1.8.7-2011.01/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Так, может быть, nginx / passenger работает так, что не использует rvm?Как я уже сказал, я совершенно не осведомлен о том, как на самом деле пассажир подключается к приложению таким образом.

1 Ответ

1 голос
/ 08 апреля 2011

Вам потребуется установить RVM от имени пользователя root, чтобы его можно было установить в масштабе всей системы и установить в / usr / local / rvm:

sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

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

sudo rvm --default 1.8.7@akrotoski
sudo /etc/init.d/nginx restart
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...