web-dev-qa-db-ja.com

CentOS7 nginxのアクセス許可がメディアと静的メディアに対して拒否されました

こんにちは

Django Webサーバーを1週間デプロイしようとしましたが、最後にそれを実行しましたが、nginxで問題が発生したためアクセス許可が拒否されました

/var/log/nginx/errors.log

/2016-07-12_1.png HTTP/1.0", Host: "ip"      2017/08/28 08:22:38 [error] 873#0: *122 open() "/srv/www/Best/media/Profile Pictures/1/2016-07-12_1.png" failed (13: Permission denied), client: 94.183.22.168, server: ip, request: "GET /media/Profile%20Pictures/1/2016-07-12_1.png HTTP/1.0", Host: "ip"

wwwフォルダー権限

drwxr-xr-x 4 root nginx 4096 Aug 27 15:05 www

最良の(プロジェクトフォルダ)権限

drwxrw-r-- 9 uwsgi nginx 4096 Aug 27 21:27 Best

メディアフォルダのアクセス許可

drw-rw-r-- 3 uwsgi nginx   4096 Aug 26 12:32 media

静的フォルダ権限

drwxrwxr-x 3 uwsgi nginx   4096 Aug 27 21:22 static
1
Ebrahim Karimi

ディレクトリにdrwxrw-r--を設定しました。次のいずれかである必要があります。

  • drwxrwxr-x-グループによる読み取り、書き込み、実行。すべてのユーザーがコンテンツを見ることができます。グループによる書き込みアクセスが本当に必要な場合を除き、お勧めしません。
  • drwxr-xr-x-グループが読み取り、実行します。すべてのユーザーがコンテンツを見ることができます。
  • drwxr-x----グループが読み取り、実行します。

ファイルの権限も表示されていません。これも問題になる可能性があります。

私には2つの選択肢があります。各フォルダとファイルを個別に修正するか、ロットを一度に修正します。ロットを一度に修正すると、特別な権限(書き込みアクセスなど)が削除される可能性がありますが、何をしているのかがわかっていれば、後で修正することもできます。

オプション1、ディレクトリとファイルごとに設定:

Sudo chmod 750 /path/to/each/directory
Sudo chmod 640 /path/to/each/file

オプション2、すべてに設定:

Sudo find /path/to/www/root -type d -print0 | xargs -0 chmod 750
Sudo find /path/to/www/root -type f -print0 | xargs -0 chmod 640

個人的には、ディレクトリには750drwxr-x---)を使用し、ウェブサイト上のファイルには640-rw-r----)を使用しますが、755drwxr-xr-x)および644-rw-r--r--)。

2
Tigger