当我尝试访问运行在nginx和乘客之上的rails应用程序时,我得到403。以下是日志文件中的错误:
2013/05/09 13:52:34 [error] 27787#0: *1 directory index of "/var/www/Tread-Forth/current/public/" is forbidden, client: 192.249.16.60, server: treadforth.com, request: "GET / \
HTTP/1.1", host: "www.treadforth.com"
即使我以root身份运行nginx,也会出现此问题,因此我认为这不是权限问题。我认为问题是我的nginx.conf文件中没有定义passenger_ruby
或passenger_root
。问题是,我不知道这些值在配置文件中的位置,我不知道它们的值应该是什么。任何帮助都会很棒。这是我的conf文件供参考:
worker_processes 1;
events {
worker_connections 1024;
}
http {
#passenger_root /usr/local/bin/passenger;
#passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name .treadforth.com;
root /var/www/Tread-Forth/current/public;
passenger_enabled on;
}
}
你可以看到我试过的乘客注释和passenger_ruby的注释版本。当我取消注释这些时,nginx无法启动但不会产生任何错误消息。
答案 0 :(得分:6)
您可以使用passenger-config --root
检查乘客安装的路径,并使用which ruby
检查您的红宝石安装路径。
答案 1 :(得分:3)
查找passenger_root的路径:
$ passenger-config --root
要查找passenger_ruby的路径,请运行以下内容,您会看到passenger_ruby路径
$ passenger-config --ruby-command
答案 2 :(得分:1)
禁止意味着您有权限问题。检查您的目录和文件权限,以便您的网络服务器可以读取它们。