РЕДАКТИРОВАТЬ: Оказывается, Джейкоб был прав, извините за понижение.Я решил немного расширить это решение.
Теперь я могу использовать двоичный файл rvm, но, поскольку он установлен пользователем, его нет в $ PATH на моем ноутбуке
bigbuk:~ julik$ which rvm
bigbuk:~ julik$
но это на сервере.
[julik@serveur ~]$ which rvm
/usr/local/rvm/bin/rvm
[julik@serveur ~]$
Вот что меня смутило.Только он должен вызываться с абсолютным путем (поскольку FCGI работает без установки правильного PATH).Таким образом, двоичный путь должен быть настроен соответствующим образом, и, конечно же, rvm правильно установит для нас GEM_HOME и GEM_PATH.Единственное, что действительно нужно установить, это BUNDLE_GEMFILE, так как Bundler не может автоматически определить его из файла Rackup, а cwd процесса FCGI является мусором.
"bin-path" => "/usr/local/rvm/bin/rvm 1.9.2-p180 exec bundle exec rackup /home/user/websites/behandelaar-web/current/web-root/",
"bin-environment" => (
"BUNDLE_GEMFILE" => "/home/user/websites/behandelaar-web/current/Gemfile",
"RACK_ENV" => "production",
),
Тем не менее, имеется определенный сценарий оболочки, написанныйв Ruby есть некоторая заслуга, поскольку и rackup, и bundle очень плохи при всплывающих исключениях , и если, скажем, есть проблемы с самим гемом FCGI (что было у меня - у него былоСпецифичная для 1.8 строковых байтов) ее исключения не будут должным образом всплывать через этот многоуровневый стек оберток, и самой проницательной вещью, которую вы увидите в отношении отчетов об ошибках, будет страница состояния 500 с вашего веб-сервера.