CentOS7 nginx 미디어 및 정적 권한이 거부되었습니다.

CentOS7 nginx 미디어 및 정적 권한이 거부되었습니다.

안녕하세요

일주일 동안 django 웹 서버를 배포하려고 노력했고 마침내 성공했지만 이제 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

drwxrw-r--디렉토리를 설정했습니다 . 다음 중 하나 이상이어야 합니다.

  • drwxrwxr-x- 그룹이 읽고, 쓰고, 실행하며, 누구나 내용을 볼 수 있습니다. 그룹에 대한 쓰기 액세스가 꼭 필요한 경우가 아니면 권장되지 않습니다.
  • drwxr-xr-x- 그룹이 읽고 실행하며, 모든 사람이 내용을 볼 수 있습니다.
  • drwxr-x---- 그룹별로 읽고 실행합니다.

또한 파일을 표시할 권한이 없습니다. 이것도 문제가 될 수 있습니다.

나에게는 두 가지 선택권이 있습니다. 각 폴더와 파일을 개별적으로 복구하거나 한 번에 일괄 복구합니다. 일괄 처리를 한 번 수정하면 특수 권한(예: 쓰기 액세스)이 제거될 가능성이 높지만 수행 중인 작업을 알고 있으면 나중에 수정할 수 있습니다.

옵션 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

개인적으로 저는 웹사이트의 디렉토리에는 750( )를, 웹사이트의 파일에는 ( )를 사용하고 싶지만 ( )와 ( )를 사용해도 됩니다.drwxr-x---640-rw-r----755drwxr-xr-x644-rw-r--r--

관련 정보