web-dev-qa-db-ja.com

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

ウェブサーバーで実行する必要があるので、正しい権限を設定してこの問題を解決する方法を教えてください。

CentOSでLEMPを使用する。

他の情報/ログが必要な場合は、質問してください。

Edit1、nginx config- http://Pastebin.com/K3fcWgec

ありがとう。

3
user1502

これが発生している理由は、nginxがデフォルトでディレクトリの内容をリストすることを許可していないためです。

そのため、nginxがindexディレクティブで指定されたファイルをディレクトリで見つけられない場合、403エラーコードが返されます。

ディレクトリのリストを許可する場合は、構成ブロックでautoindexディレクティブを使用できます。

location /pset7 {
    autoindex on;
}

rootおよびindexディレクティブを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
Tero Kilkanen

これが表示される理由は、「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
user1622951