2017-10-08 147 views
0

我天大的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 -lcache.txt輸出:

-rwxrwxr-- 1 root root 17 Oct 8 16:06 cache.txt 

據我所知,這意味着

  1. 這是一個文件
  2. 所有者可以讀,寫和執行它
  3. 組可以讀,寫和執行它
  4. 每個人都可以閱讀
  5. 它的主人是root
  6. 本組是root
  7. 上次在16:06
  8. 修訂於17年10月8日它被稱爲cache.txt

這似乎是每個人都應該能夠讀取cache.txt,但是我得到這個權限被拒絕IO錯誤。爲什麼會發生這種情況,我該如何解決?

+0

,你可以嘗試打開從外殼的文件嗎?它會是同樣的結果嗎? –

回答

0

我不知道,如果這是你的問題或沒有,但我曾經見過一個父目錄沒有被標記讀取和執行,並從能夠訪問它阻止了服務器問題。嘗試chmod +x $PROJECT_ROOT/autocache

+0

不幸的是,沒有奏效。 – Dopapp

+0

那麼'chown'目錄(和文件)到'www-data'用戶怎麼辦? – cwallenpoole