Ruby on Rails, nginx, пассажир на рабочем сервере (не может загрузить такой файл - rubygems / path_support) - PullRequest
1 голос
/ 22 октября 2011

Я установил:

  • Centos 6
  • Ruby 1.9.3-rc1
  • Модуль "Пассажирский драгоценный камень" и "Пассажирский nginx" (скомпилирован из собственного источника 1.1.6)
  • Установленные рельсы 3.1.0
  • Сделано / SRV
  • Сделал ли рельсы новый тест
  • комплектация
  • сделал vhost для пассажира внутри nginx на основе примера / srv / test / public
  • служба остановки nginx && служба запуска nginx
  • приложение ruby ​​нормально загружается index.html отображается, но потом ...

После щелчка по ссылке «проверить среду приложения», которая находится по умолчанию /public/index.html, я получаю эту ошибку

не может загрузить такой файл - rubygems / path_support

Question: Anyone know how I can resolve the cannot load such file -- rubygems/path_support    error?

Full error post below

Не удалось запустить приложение Ruby (Rack) Исходный файл, который требуется приложению, отсутствует. Возможно, вы неправильно загрузили файлы приложения. Пожалуйста, проверьте, все ли файлы вашего приложения загружены. Требуемая библиотека может быть не установлена. Пожалуйста, установите все библиотеки, которые требуются для этого приложения. Дополнительная информация об ошибке может быть записана в файл журнала приложения. Пожалуйста, проверьте это, чтобы проанализировать проблему.

Сообщение об ошибке: невозможно загрузить такой файл - rubygems / path_support

Класс исключения: LoadError

Корень приложения: / srv / test

Backtrace:

# File Line Location
0 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems.rb 392 in 'paths'
1 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems.rb 413 in 'path'
2 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 381 in 'dirs'
3 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 267 in '_all'
4 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 409 in 'each'
5 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 441 in 'find'
6 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb 441 in 'find_by_path'
7 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems.rb 203 in 'try_activate'
8 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 58 in 'rescue in require'
9 /usr/local/rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 35 in 'require'
10 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/utils.rb 241 in 'prepare_app_process'
11 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/rack/application_spawner.rb 155 in 'block in initialize_server'
12 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/utils.rb 572 in 'report_app_init_status'
13 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/rack/application_spawner.rb 153 in 'initialize_server'
14 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server.rb 204 in 'start_synchronously'
15 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server.rb 180 in 'start'
16 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/rack/application_spawner.rb 128 in 'start'
17 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/spawn_manager.rb 253 in 'block (2 levels) in spawn_rack_application'
18 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server_collection.rb 132 in 'lookup_or_add'
19 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/spawn_manager.rb 246 in 'block in spawn_rack_application'
20 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server_collection.rb 82 in 'block in synchronize'
21 prelude> 10:in 'synchronize'
22 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server_collection.rb 79 in 'synchronize'
23 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/spawn_manager.rb 244 in 'spawn_rack_application'
24 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/spawn_manager.rb 137 in 'spawn_application'
25 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/spawn_manager.rb 275 in 'handle_spawn_application'
26 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server.rb 357 in 'server_main_loop'
27 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/lib/phusion_passenger/abstract_server.rb 206 in 'start_synchronously'
28 /usr/local/rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/helper-scripts/passenger-spawn-server 99 in ''

Ответы [ 3 ]

2 голосов
/ 03 апреля 2013

В моем случае я также столкнулся с этой проблемой:
(Моя среда: Centos 5.8, rbenv 1.9.3p327, пассажир 3.0.19, nginx (скомпилирован и установлен пассажиром). Я гуглил, но не нашеллюбой прямой ответ (ключевое слово: rbenv, passenger, cannot load such file -- rubygems/path_support), поэтому я пишу свое решение здесь.

Я проверил и установил пользователя nginx как root, не работает. И изменил все привилегии папки gem на 777. Не работает.

наконец-то я получил решение: добавьте эти 2 строки кода в ваш файл конфигурации Nginx:

passenger_default_user root;
passenger_default_group root;

так что теперь ваш файл конфигурации nginx выглядит следующим образом:

# /opt/nginx/config/nginx.conf
user  root;  # seems this line of code doesn't take effect.
http {
  passenger_root /root/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/passenger-3.0.19;
  passenger_ruby /root/.rbenv/versions/1.9.3-p327/bin/ruby;

  # these lines are the key!!!
  passenger_default_user root;
  passenger_default_group root;

  server {
    listen 80;
    root <your_rails_project_public_folder>;
    passenger_enabled on;
  }
}
2 голосов
/ 06 ноября 2011

У меня была похожая проблема, хотя rvm и ruby ​​были установлены только для одного пользователя.Для меня решением было проверить, что файлы приложения принадлежат тому же пользователю, для которого был установлен ruby.

http://www.modrails.com/documentation/Users%20guide%20Nginx.html#user_switching

0 голосов
/ 26 ноября 2011

У меня была такая же проблема.Тимо прав.

ваше приложение должно установить каталог / home / rvm_user / directory.

пример:

# vi /etc/conf/httpd.conf
LoadModule passenger_module
/home/rvm_user/.rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /home/rvm_user/.rvm/gems/ruby-1.9.3-rc1/gems/passenger-3.0.9
PassengerRuby /home/rvm_user/.rvm/wrappers/ruby-1.9.3-rc1/ruby

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /home/rvm_user/your_application/public
<Directory /home/rvm_user/your_application/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>

# chmod 755 /home/rvm_user/

# /etc/rc.d/init.d/httpd restart
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...