每次我不得不去删除所有文件的根访问权限并使用chown user_name:user_group *
授予当前用户访问权限时,我都会从django网站上不断遇到此问题。但是在网站生成一些新的缓存文件后,问题又回来了。
Internal Server Error: /
PermissionError at /
[Errno 13] Permission denied:'/var/tmp/project_cache/a92ccb8f0f5dc3d17dbaae74ac7.djcache'
我使用基于文件的Django缓存。这是我的设置
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/project_cache',
'TIMEOUT': 60 * 15,
'OPTIONS': {
'MAX_ENTRIES': 1000
}
}
}
我永远不需要用户缓存文件吗?
答案 0 :(得分:0)
/tmp/
和 /var/tmp/
可由所有用户写入。
我要求 Django 为每个用户创建一个文件夹,这样我就不会被 [Errno 13] Permission denied
打扰。
import os
from pwd import getpwuid
__USERNAME = getpwuid(os.getuid()).pw_name
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': f'/tmp/{__USERNAME}-django/',
},
}
例如,将分别创建 /tmp/ubuntu-django/
和 /tmp/www-data-django/
。