Ruby on Rails,nginx,生产服务器上的乘客(无法加载此类文件 – ruby​​gems / path_support)

我安装了:

  • Centos 6
  • Ruby 1.9.3-rc1
  • 乘客gem和乘客nginx模块(根据自己的源1.1.6编译)
  • 安装导轨3.1.0
  • Made / srv
  • 铁路新测试了
  • 捆绑安装
  • 根据示例/ 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

exception类: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 '' 

我有一个类似的问题,虽然我只为一个用户安装了rvm和ruby。 对我来说,解决方案是检查应用程序文件是否由安装了ruby的同一用户所有。

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

就我而言,我也遇到了这个问题:
(我的环境: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 ; passenger_enabled on; } } 

我遇到了同样的问题。 蒂莫是对的。

您的应用程序必须设置/ 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  ServerName www.yourhost.com DocumentRoot /home/rvm_user/your_application/public  AllowOverride all Options -MultiViews   # chmod 755 /home/rvm_user/ # /etc/rc.d/init.d/httpd restart