gpt4 book ai didi

Passenger 上的 Sinatra 应用程序找不到 Rack(使用 RVM)

转载 作者:行者123 更新时间:2023-12-02 17:42:09 25 4
gpt4 key购买 nike

我已经为这个 Sinatra 应用程序与临时服务器进行了两天的斗争。我变得非常沮丧。最新的坑是 Passenger 提交的 Ruby 错误:

no such file to load -- rack

nginx.conf 文件显示了我们正在使用的 Ruby,以及 Passenger 所在的位置:

passenger_root /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5;
passenger_ruby /usr/local/rvm/rubies/ruby-1.9.2-p180/bin/ruby;

好的,这就是我们的 Ruby 1.9.2。

虚拟主机配置包括:

root /var/www/staging-proweb/current/rack/public;
passenger_enabled on;
rack_env staging;

并且rackup文件有:

require 'rubygems'
require 'sinatra'
require 'myapp1.rb'

run Sinatra::Application

然后将我们发送到 myapp1.rb 文件,其中包括

require 'rubygems'
require 'rack'
require 'sinatra'

...我认为 sinatra 要求就是对 Rack 的要求。

gem 就在那里:

~$ which ruby
/usr/local/rvm/rubies/ruby-1.9.2-p180/bin/ruby
~$ gem list rack

*** LOCAL GEMS ***

rack (1.2.2)
rack-flash (0.1.1)

从堆栈跟踪的前三行来看,错误似乎出现在 RVM 目录中的一个文件中:

0 /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb   36  in `require'
1 /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 36 in `require'
2 /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/rack/application_spawner.rb 219 in `load_rack_app'

接下来我应该尝试什么?我现在很困惑。

最佳答案

问题似乎出在 passenger_ruby 配置值上。 RVM 提供了一个包装器来为 Ruby(包括 gem)设置适当的环境,因此 passenger_ruby 行应该已读取

    passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p180/ruby;

有了这些,我们似乎就可以正常运行了。

关于Passenger 上的 Sinatra 应用程序找不到 Rack(使用 RVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com