2017-03-16 78 views
0

我在Digital Ocean VPS - Ubuntu 14.04上部署了我的網絡。我在我的一個模型中有一個ImageField,我在Django admin中選擇(瀏覽PC並上傳圖像)。問題是這張圖片不能保存到/media/categories/。它提出:Django/NGINX/Gunicorn/Ubuntu:媒體文件 - [Errno 13] Permission denied

[錯誤13]許可被拒絕: '/home/django/project/media/categories/television_d3q3EM0.png'

我認爲它是,因爲Nginx已經不寫權限/media/目錄,所以我運行這些命令:

sudo chown -R www-data /media/ 

這並沒有幫助

sudo chown -R django /media/ 

這既沒有幫助也沒有幫助

我是一個Linux新手權利,所以我無法弄清楚我做錯了什麼。

媒體文件夾位於/project/目錄(其中manage.py是)。

以下是/media/文件夾的權限。

業主有權利,所以我不知道爲什麼sudo chown -R www-data /media/沒有工作。

enter image description here

GUNICORN OWNER

ps aux | grep gunicorn 
django 16636 0.3 2.7 66040 13616 ?  Ss 08:16 0:00 /usr/bin/python /usr/bin/gunicorn --name=project --pythonpath=project --bind=127.0.0.1:9000 --config /etc/gunicorn.d/gunicorn.py project.wsgi:application 
django 16642 1.1 7.8 174800 39164 ?  S 08:16 0:00 /usr/bin/python /usr/bin/gunicorn --name=project --pythonpath=project --bind=127.0.0.1:9000 --config /etc/gunicorn.d/gunicorn.py project.wsgi:application 
django 16643 1.9 10.5 214244 52808 ?  S 08:16 0:01 /usr/bin/python /usr/bin/gunicorn --name=project --pythonpath=project --bind=127.0.0.1:9000 --config /etc/gunicorn.d/gunicorn.py project.wsgi:application 
django 16644 2.3 10.4 209232 52224 ?  S 08:16 0:01 /usr/bin/python /usr/bin/gunicorn --name=project --pythonpath=project --bind=127.0.0.1:9000 --config /etc/gunicorn.d/gunicorn.py project.wsgi:application 
root  16667 0.0 0.1 11744 932 pts/0 S+ 08:17 0:00 grep --color=auto gunicorn 
+0

可能的重複:http://stackoverflow.com/questions/28249115/errno-13-permission-denied-using-gunicorn –

+0

您的文件夾權限應該是'755'而不是'311'。 – themanatuf

+0

@themanatuf它沒有幫助。我試圖改變它。 –

回答

2

假設你正在使用gunicorn,確保其運行gunicorn權限寫入到指定路徑的用戶。查看gunicorn deployment docs瞭解如何控制哪個用戶運行gunicorn。

+0

他在使用nginx,在原文中這麼說。 – themanatuf

+0

這是Nginx與Gunicorn(編輯) –

+0

所以你的答案是部分正確的。問題是指定路徑。我應該做媒體/而不是/媒體/。 –

1

問題在於chown命令。

sudo chown -R django /media/ 

工作,因爲有/媒體/目錄 - 它是在樹的底部到media文件夾的絕對路徑。

我應該做的,而不是:

sudo chown -R django media/這是一個相對路徑(我是在項目目錄)。

django用戶正在處理gunicorn所以django必須是media/所有者(或必須具有適當的權限)。

相關問題