尝试从 Apache2 中删除不在 /var/www 中的文件



我是apache2新手,并且对我网站的功能有权限问题。

我有django运行apache2,我的django项目在网站上具有删除功能,后端从/Project/results 中删除文件夹。以下是我的python函数,当我在djangoWeb开发服务器上运行时,它按预期工作,但是当我通过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文件功能。

相关内容

最新更新