2017-03-16 75 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/所有者(或必须具有适当的权限)。

相关问题