Centos
CentOS7 nginx 權限被拒絕媒體和靜態
你好
我已經嘗試部署 django web 伺服器一個星期,最後我做到了,但是現在我遇到了 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
您已
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----
表示網站上的文件,但您可能希望使用755
(drwxr-xr-x
) 和644
(-rw-r--r--
)。