我天大的Django项目已经在Apache 2上运行这是一般结构:Django的Apache的IO错误
root/apps/django/django_projects/Project
├── autocache
│ ├── cache.py
│ └── cache.txt
├── conf
├── manage.py
├── Project
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ └── ...
├── myapp
│ ├── __init__.py
│ ├── apps.py
│ ├── views.py
│ ├── urls.py
│ └── ...
当显示myapp
,我只是展现cache.txt
内容。这是我必须做的是:
from django.shortcuts import render
from django.http import HttpResponse
from django.conf import settings
import os
def index(request):
cache_path = os.path.join(settings.CACHE_DIR, 'cache.txt')
with open(cache_path, 'r') as cache:
return HttpResponse(cache.read())
return "Could not open file"
的问题是,一个异常被抛出:
Request Method: GET
Request URL: http://myip/Project/subwayapp/
Django Version: 1.11.5
Exception Type: IOError
Exception Value:
[Errno 13] Permission denied: '/root/apps/django/django_projects/Project/autocache/cache.txt'
Exception Location: /opt/bitnami/apps/django/django_projects/Project/myapp/views.py in index, line 8
Python Executable: /opt/bitnami/python/bin/python
Python Version: 2.7.13
然而,这是ls -l
为cache.txt
输出:
-rwxrwxr-- 1 root root 17 Oct 8 16:06 cache.txt
据我所知,这意味着
- 这是一个文件
- 所有者可以读,写和执行它
- 组可以读,写和执行它
- 每个人都可以阅读
- 它的主人是
root
- 本组是
root
- 上次在16:06
- 修订于17年10月8日它被称为
cache.txt
这似乎是每个人都应该能够读取cache.txt
,但是我得到这个权限被拒绝IO错误。为什么会发生这种情况,我该如何解决?
,你可以尝试打开从外壳的文件吗?它会是同样的结果吗? –