1

当我尝试访问在 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;
    }
}

您可以看到我尝试过的乘客根和乘客红宝石的注释掉版本。当我取消注释这些时,nginx 无法启动但不会产生任何错误消息。

4

3 回答 3

6

您可以使用 来检查您的乘客安装passenger-config --root路径,以及使用 来检查您的 ruby​​ 安装路径which ruby

于 2013-05-10T01:18:57.440 回答
3

查找passenger_root 的路径:
$passenger-config --root

要查找passenger_ruby 的路径,请运行以下命令,您会看到passenger_ruby path
$passenger-config --ruby-command

于 2014-01-26T06:40:03.333 回答
1

禁止意味着您有权限问题。检查您的目录和文件权限,以便您的网络服务器可以读取它们。

于 2013-05-10T01:14:04.343 回答