#ruby-on-rails #ruby #rubygems #compiler-errors
#ruby-on-rails #ruby #rubygems #ошибки компилятора
Вопрос:
Я установил:
- Centos 6
- Ruby 1.9.3-rc1
- Пассажирский модуль gem и пассажирский модуль nginx (скомпилирован по собственному исходному коду 1.1.6)
- Установлены rails 3.1.0
- Сделано / srv
- Сделал ли rails новый тест
- установка пакета
- создан vhost для пассажира внутри nginx на основе example / 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
Класс исключения: ошибка загрузки
Корень приложения: /srv/test
Обратная трассировка:
# 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 ''
Ответ №1:
У меня была похожая проблема, хотя у меня были установлены rvm и ruby только для одного пользователя. Для меня решением было проверить, что файлы приложения принадлежат тому же пользователю, для которого был установлен ruby.
http://www.modrails.com/documentation/Users guide Nginx.html#user_switching
Комментарии:
1. Спасибо, у меня все еще не было времени разобраться в этом, я обновлю, если это было причиной, спасибо, что указали!
Ответ №2:
В моем случае я также столкнулся с этой проблемой:
( Моя среда: Centos 5.8, rbenv 1.9.3p327, passenger 3.0.19, nginx (скомпилирован и установлен passenger) . Я поискал в Google, но не нашел прямого ответа ( ключевое слово: 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;
}
}
Комментарии:
1. Это сработало для меня. Наконец-то я могу запустить WordPress и Sinatra на одном сервере 🙂 Два моих совета; Вместо того, чтобы запускать это как root, запустите его как некорневого пользователя с привилегиями sudo.
Ответ №3:
У меня была такая же проблема. Тимо прав.
ваше приложение должно установить /home/rvm_user/ каталог.
пример:
# 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
Комментарии:
1. Спасибо, я изучаю права, уже настроил его с помощью passenger и nginx.