繁体   English   中英

Django / NGINX / Gunicorn / Ubuntu:媒体文件-[Errno 13]权限被拒绝

[英]Django/NGINX/Gunicorn/Ubuntu: Media files - [Errno 13] Permission denied

我已经在Digital Ocean VPS-Ubuntu 14.04上部署了我的网站。 我的一个模型中有一个ImageField ,可以在Django管理员中选择(浏览PC并上传图像)。 问题在于该图像无法保存到/media/categories/ 它正在提高:

[Errno 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/无法正常工作。

在此处输入图片说明

GUNICORN所有者

 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

假设您正在使用gunicorn,请确保正在运行gunicorn的用户具有写入指定路径的权限。 查看gunicorn部署文档 ,了解如何控制哪个用户正在运行gunicorn。

问题出在chown命令上。

sudo chown -R django /media/

之所以起作用,是因为它有/ media /目录-这是树底部media文件夹的绝对路径。

我应该改为:

sudo chown -R django media/是相对路径(我在项目目录中)。

django用户正在处理gunicorn因此django必须是media/所有者(或必须具有适当的权限)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM