我知道这是一个非常著名的错误,但我尝试了我在 StackOverflow 和谷歌上找到的所有东西,但无法解决它。
我有以下配置:
- Amazon EC2 上的 SLES 11 SP1
- nginx 1.2.2
- 乘客 3.0.15
- 导轨 3
我安装了 nginx 和乘客,并像这样设置 nginx.conf:
http {
passenger_root /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.15;
passenger_ruby /usr/bin/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /root/myapp/public;
autoindex on;
passenger_enabled on;
}
}
...
当我从浏览器访问应用程序时,它一直说 403 禁止。我还在 app 文件夹、/var 和 /opt 上运行 chmod -R 755(nginx 在 /opt/nginx 中)
在日志中,错误是:
[error] 5240#0: *1 open() "/root/myapp/public/favicon.ico" failed (13: Permission denied), client: 188.11.5.49, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "ec2-54-247-18-139.eu-west-1.compute.amazonaws.com"
更新:/root/myapp/public/index.html(不存在)也会出现同样的错误
[error] 5638#0: *1 "/root/myapp/public/index.html" is forbidden (13: Permission denied), client: 188.11.5.49, server: localhost, request: "GET / HTTP/1.1", host: "ec2-54-247-18-139.eu-west-1.compute.amazonaws.com"
更新 2:当我在独立模式下运行乘客时也出现同样的错误:
You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================
2012/08/30 08:31:34 [error] 7834#0: *4 "/root/myapp/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"