我是apache2
新手,并且对我网站的功能有权限问题。
我有django
运行apache2
,我的django
项目在网站上具有删除功能,后端从/Project/results 中删除文件夹。以下是我的python函数,当我在django
Web开发服务器上运行时,它按预期工作,但是当我通过apache2
运行它时,它会抛出错误'Exception: ', OSError(13, 'Permission denied')
,
def delPrevGraph(request):
delId = request.GET["delId"]
try:
print("Path deleting: /Project/results/",delId)
shutil.rmtree("/Project/results/"+delId)
except Exception as e:
print("Exception: ",e)
args={}
return HttpResponse(json.dumps(args))
直接results
的权限和所有者如下:
drwxr-xr-x 52 www-data www-data 4096 May 19 06:41 results
但是目录中results
所有文件夹都归root
所有。只是为了检查,我确实尝试按如下方式授予权限,但没有显示任何区别。
chown www-data:www-data deleteID
chmod 755 deleteID
我也尝试在default-ssl.conf
文件中添加以下内容,并尝试重新启动apache2
并从网站中删除。还是没有区别。
<Directory /Project/results/>
Require all granted
</Directory>
我无法更改此目录的位置并将其放在/var/www
中。
有没有办法做到这一点?我已经在这个问题上停留了一段时间,非常感谢一些帮助。
我正在阅读 shutil 文档。在警告框中,他们建议我们不要在POSIX(linux)系统上使用复制功能。也许您的问题与POSIX错误有关,请尝试使用基本的I/O文件功能。