尝试访问 nginx 文档根目录中的文件夹时出现 403 禁止访问

尝试访问 nginx 文档根目录中的文件夹时出现 403 禁止访问

当我访问 index.php 时,它工作正常。但在 localhost/pset7 上,它给出 403。

这是权限日志,

-rw-r--r--. 1 root        root          51 Jul 31 14:21 index.html
-rw-r--r--. 1 root        root          51 Jul 31 14:15 index.php
drwxrwxr-x. 5 my_user my_user 4096 Jul 31 15:13 pset7

我需要在网络服务器上运行它,所以请告诉我如何设置正确的权限并解决这个问题。

在 CentOS 上使用 LEMP。

如果您需要任何其他信息/日志,请直接询问。

Edit1,nginx 配置-http://pastebin.com/K3fcWgec

谢谢。

答案1

发生这种情况的原因是 nginx 默认不允许列出目录内容。

index因此,如果 nginx 无法在目录中找到用该指令指定的文件,它将返回 403 错误代码。

如果您想允许目录列表,您可以autoindex在配置块中使用指令:

location /pset7 {
    autoindex on;
}

您还应该将rootindex指令从location /块移动到级别server,以便您的配置看起来像这样:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.html index.htm index.php;

    location /pset7 {
        autoindex on;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

答案2

您看到此问题的原因是“pset7”未添加到 Nginx 配置中。您需要做的就是将以下内容添加到您的 Nginx 配置中

    location /pset7 {
    root   /var/www/html; # Put this somewhere else, probably in the beginning of your config instead of here, if possible.
    index  index.html index.htm index.php;
}

相关内容