[英]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.