簡體   English   中英

Ruby on Rails,nginx,生產服務器上的乘客(無法加載此類文件 - ruby​​gems / path_support)

[英]Ruby on Rails, nginx, passenger on production server (cannot load such file — rubygems/path_support)

我安裝了:

  • Centos 6
  • Ruby 1.9.3-rc1
  • 乘客寶石和乘客nginx模塊(根據自己的源1.1.6編譯)
  • 安裝導軌3.1.0
  • Made / srv
  • 鐵路新測試了
  • 捆綁安裝
  • 基於example / srv / test / public為nginx內的乘客制作了vhost
  • service nginx stop && service nginx start
  • ruby app加載好了index.html然后顯示...

單擊默認的/public/index.html中的“檢查應用程序環境”鏈接后,我收到此錯誤

無法加載此類文件 - ruby​​gems / path_support

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

Full error post below

無法啟動Ruby(Rack)應用程序缺少應用程序所需的源文件。 您可能沒有正確上傳應用程序文件。 請檢查是否上傳了所有應用程序文件。 可能未安裝所需的庫。 請安裝此應用程序所需的所有庫。 有關錯誤的更多信息可能已寫入應用程序的日志文件。 請檢查它以分析問題。

錯誤消息:無法加載此類文件 - ruby​​gems / 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM