[英]Ruby on Rails, nginx, passenger on production server (cannot load such file — rubygems/path_support)
我安裝了:
單擊默認的/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
應用程序root:/ 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 ''
就我而言,我也遇到了這個問題:
(我的環境:Centos 5.8,rbenv 1.9.3p327,乘客3.0.19,nginx(由乘客編譯和安裝)。我用google搜索但沒有找到任何直接答案(關鍵字: rbenv, passenger, cannot load such file -- rubygems/path_support
),所以我在這里寫我的解決方案。
我已經檢查並將nginx用戶設置為root,而不是工作。 並將gem文件夾的所有權限更改為777.無效。
最后我得到了解決方案:將這兩行代碼添加到您的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;
}
}
我有一個類似的問題,雖然我只為一個用戶安裝了rvm和ruby。 對我來說,解決方案是檢查應用程序文件是否由安裝了ruby的同一用戶所有。
http://www.modrails.com/documentation/Users%20guide%20Nginx.html#user_switching
我遇到了同樣的問題。 蒂莫是對的。
您的應用程序必須設置/ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.