Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 403通过django admin发布的新文件出错_Python_Django_Nginx_Gunicorn - Fatal编程技术网

Python 403通过django admin发布的新文件出错

Python 403通过django admin发布的新文件出错,python,django,nginx,gunicorn,Python,Django,Nginx,Gunicorn,我正在运行Django服务器,Gunicorn和Nginx托管在DigitalOcean上。我遇到了一个问题,通过管理员界面添加新文件会产生403禁止的错误。具体来说,如果我调用对该文件的查询(例如,Object.objects.all()),但无法在我的模板中呈现,则该文件可以正常工作。我以前通过执行chmod/chown修复了该问题,但该修复仅适用于现有文件,而不适用于新文件。是否有人知道如何永久应用一次修复程序?TL;博士: settings.py中的文件上传权限=0o644 在bash

我正在运行Django服务器,Gunicorn和Nginx托管在DigitalOcean上。我遇到了一个问题,通过管理员界面添加新文件会产生403禁止的错误。具体来说,如果我调用对该文件的查询(例如,
Object.objects.all()
),但无法在我的模板中呈现,则该文件可以正常工作。我以前通过执行
chmod/chown
修复了该问题,但该修复仅适用于现有文件,而不适用于新文件。是否有人知道如何永久应用一次修复程序?

TL;博士:

  • settings.py中的文件上传权限=0o644
  • 在bashshell中:
    find/path/to/MEDIA\u ROOT-type d-execchmod go+rx{}+
解释 创建文件时使用的权限过于严格,因此用户Nginx运行时无法读取这些文件。要解决此问题,您需要确保Nginx可以读取文件并访问文件

目标 首先,您需要允许Nginx用户读取。其次,媒体根目录和所有子目录必须是Nginx可读的,Gunicorn可写的

如何 您必须确保目录是(和可执行的),或者目录组必须是Nginx进程所属的组,并且它们必须至少是组可读的(和可执行的)


作为补充说明,您说过您以前使用过chmod和chown,所以我假设您熟悉使用的术语。既然你不是,我强烈建议你全面阅读链接教程,这样你就能理解你使用的命令可能会做什么,也可能会出错。

两个问题:首先,文件上传权限“正常”意味着什么,我如何检查它是否正常?类似地,对于
MEDIA\u ROOT
及其子目录来说,世界可读/可执行意味着什么,我如何检查它是否是?