По сути, «запуск пассажира» отлично работает с терминала, но простой скрипт, такой как «запуск пассажира», не работает, потому что он не работает с:
*** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find abstract-1.0.0 in any of the sources (Bundler::GemNotFound)) (process 19278, thread #<Thread:0x7f16dbfaf368>):
Похоже, я больше не могу найти драгоценные камни. Кажется, это очень распространенная проблема в Google, но я не могу найти простой ответ. Я не хочу, чтобы обезьяна исправила мое приложение rails следующим образом: http://blog.ninjahideout.com/posts/the-path-to-better-rvm-and-passenger-integration (который я все равно не мог заставить работать)
Кажется невероятным, что не существует простого способа справиться с этим. Почему запуск пассажира из сценария оболочки отличается от ввода его вручную?
ОБНОВЛЕНИЕ: в основном, я исправил это, не используя пассажира. Вместо того, чтобы использовать «пассажирский старт», я теперь использую «сервер рельсов», и он работает нормально. Теперь, очевидно, это не «решает» проблему, с которой я столкнулся, но этого достаточно для моих потребностей в разработке.
Я также хотел бы немного рассказать о моей настройке, потому что я думаю, что был немного расплывчатым.
По сути, у меня был этот скрипт с именем start_rails.sh
#!/bin/bash
cd /rails/app
passenger start
Это не сработало, и я попробовал все под солнцем, включая поиск всех моих файлов bash, и ничего не получалось. Я изменил это на:
#!/bin/bash
source "$HOME/.rvm/scripts/rvm"
cd /rails/app
rails s
И теперь это работает. Я могу запустить его из сценария выскочки:
start on started mysql
exec sudo -u ubuntu -i /home/ubuntu/bin/start_rails.sh
Однако «запуск пассажиров» все еще не работает, никогда не работает, и я думаю, что никогда не будет = PI все еще не знает, почему нет способа запустить сценарий оболочки и сказать ему «запустить его точно так, как если бы я набирал его вручную ", потому что просто набрать" старт пассажира "работает. Из сценария оболочки это не так. Ну что ж. Жизнь продолжается.