Назад | Перейти на главную страницу

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

Спасибо.

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

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

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

location /pset7 {
    autoindex on;
}

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

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;
    }
}

Причина, по которой вы это видите, заключается в том, что «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;
}