0

乡亲

我正在尝试使用乘客 3.0.12 和 nginx 1.2 在 rails 3.2.3 上设置 ruby​​。我已按照说明使用乘客模块编译 nginx。以下是我的 nginx 配置。当我尝试转到根页面(使用 curl localhost)时,它给了我 403 禁止错误。它似乎没有将请求传递给乘客。如果我遗漏了一些简单的东西,请告诉我。谢谢,

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    passenger_root /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12;
    passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby;
    rails_env development;

    include   mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        passenger_enabled on;

        location / {
            root   /home/ubuntu/rails/myapp/public;
        }
    }

}

编辑 如果我执行以下操作:1)创建一个新应用程序 - 虚拟 2)将 config.ru 更改为打印 'hello world' 3)将根更改为指向虚拟应用程序的公共目录

然后错误消失。

此外,如果我创建一个全新的 rails 应用程序,我可以访问默认的 rails 应用程序页面。我还尝试为整个 myapp 目录结构创建目录 perms 777。没有喜悦。

4

1 回答 1

2

解决了。​​passenger_enabled 子句必须移到 location 块内。

于 2012-06-01T20:07:18.063 回答