如何让乘客和车辆一起工作?

x-y*_*uri 0 ruby passenger nginx sinatra rvm

rvm事先已经安装好了.我决定从一个包(nginx-full和passenger)安装乘客,并希望使用ruby安装的rvm.但不知怎的,它不起作用.这是sinatra我正在使用的测试应用程序(~yuri/a1/app.rb):

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello and Goodbye"
end
Run Code Online (Sandbox Code Playgroud)

〜尤里/ A1/config.ru:

require 'rubygems'
require 'sinatra'

require './app.rb'
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

nginx.conf:

http {
    ...
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
        # the paths in the above file point out to debian repository's ruby version
    server {
        server_name a1;
        root   /home/yuri/a1;
        access_log   /var/log/nginx/a1-access.log;
        error_log   /var/log/nginx/a1-error.log;
        passenger_enabled   on;
        passenger_ruby   /home/yuri/.rvm/wrappers/ruby-1.9.3-p385@a1/ruby;
    }
}
Run Code Online (Sandbox Code Playgroud)

但当我w3m http://a1 access.log说:

127.0.0.1 - - [12/Sep/2013:21:14:58 +0300] "GET / HTTP/1.0" 403 168 "-" "w3m/0.5.2+cvs-1.1027"
Run Code Online (Sandbox Code Playgroud)

并且error.log:

2013/09/12 21:14:58 [error] 27622#0: *1 directory index of "/home/yuri/tr/" is forbidden, client: 127.0.0.1, server: tr, request: "GET / HTTP/1.0", host: "a1"
Run Code Online (Sandbox Code Playgroud)

如果我按如下方式运行该应用程序:rvm ruby-1.9.3-p385@a1 && ruby app.rb.

有没有办法追踪那里发生的事情?或者如何使它工作?

x-y*_*uri 5

passenger期望应用程序目录具有特定的布局.特别是,config.ru必须相对于文档根位于一个级别.那是:

/etc/nignx/nginx.conf:

...
http {
    ...
    passenger_root   /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    server {
        server_name a1;
        root   /home/yuri/a1/public;
        access_log   /var/log/nginx/a1-access.log;
        error_log   /var/log/nginx/a1-error.log;
        passenger_ruby   /home/yuri/.rvm/wrappers/ruby-1.9.3-p385@a1/ruby;
        passenger_enabled   on;
    }
}
Run Code Online (Sandbox Code Playgroud)

〜尤里/ A1/app.rb:

require 'sinatra'
get '/' do
  "Hello World!"
end
Run Code Online (Sandbox Code Playgroud)

〜尤里/ A1/config.ru:

require './app'
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

和:

$ rvm install 1.9.3-p385
...
$ rvm --create use 1.9.3-p385@a1
...
$ curl http://a1
Hello World!
Run Code Online (Sandbox Code Playgroud)