OSError - Errno 13权限被拒绝

don*_*yor 38 python unix apache django

我正在尝试通过管理页面上传图片,但它一直在说:

[Errno 13] Permission denied: '/path/to/my/site/media/userfolder/2014/05/26'
Run Code Online (Sandbox Code Playgroud)

userfolder/2014/05/26上传时动态创建文件夹 .

在Traceback中,我发现在此命令期间发生了错误:

在/usr/lib64/python2.6/os.py第157行.调用时

mkdir(name, mode) 
Run Code Online (Sandbox Code Playgroud)

意思是,它无法创建任何文件夹,因为它没有权限执行此操作

我在服务器中使用OpenSuse作为操作系统.在httpd.conf中,我有这个:

<Directory /path/to/my/site/media>
   Order allow,deny
   Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

我需要chmod或chown吗?

fal*_*tru 24

您需要更改目录权限,以便Web服务器进程可以更改目录.


mjp*_*mjp 13

如果在文件夹名称前有斜杠,也可能发生这种情况:

path = '/folder1/folder2'

OSError: [Errno 13] Permission denied: '/folder1'
Run Code Online (Sandbox Code Playgroud)

出现错误,但这个工作正常:

path = 'folder1/folder2'
Run Code Online (Sandbox Code Playgroud)

  • 值得解释_why_这种情况发生了.在Unix中的文件夹名称之前的`/`表示该文件夹应该存在于根目录中,该目录还包含所有主要的敏感系统文件夹,例如`/ usr /`,`/ bin /`等等.(尝试一下,做`cd /`,看看你在哪里登陆.不允许普通进程修改根目录.省略一个前导`/`将文件夹默认为当前工作目录,这是非常安全的,Unix将为你做什么. (9认同)