403 Запрещенных при попытке получить доступ к папке в корне документа nginx

Когда я получаю доступ к 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

Я должен выполнить его на веб-сервере, поэтому скажите мне, как установить корректные полномочия и решить эту проблему.

Использование LEMP на CentOS.

Если Вы нуждаетесь в информации/журналах, просто спрашиваете.

Edit1, nginx конфигурация - http://pastebin.com/K3fcWgec

Спасибо.

3
задан 31 July 2014 в 14:19
2 ответа

Причина, по которой это происходит, заключается в том, что nginx не разрешает по умолчанию перечислять содержимое каталогов.

Итак, если nginx не сможет найти файлы, указанные директивой index в директории, то он вернет код 403 ошибки.

Если вы хотите разрешить листинг каталогов, вы можете использовать директиву autoindex в блоке конфигурации:

location /pset7 {
    autoindex on;
}

Вы также должны переместить ваши директивы root и index из блока местоположения / на уровень сервера, чтобы ваша конфигурация выглядела следующим образом:

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
ответ дан 3 December 2019 в 06:33

Причина, по которой вы это видите, заключается в том, что "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;
}
1
ответ дан 3 December 2019 в 06:33

Теги

Похожие вопросы