2012-01-28 3 views
1

Я пытаюсь создать сайт django, который использует библиотеку oauth2client, а значит, libhttp2.libhttp2 location для '.cache'

Все, кажется, работает нормально, в автономном сервере разработки, но когда я пытаюсь подключить его к Apache с использованием mod_wsgi, я получаю эту одну ошибку:

[Errno 13] Permission denied: '.cache' 

И вот отслеживающий:

Traceback: 
File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response 
    91.       request.path_info) 
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve 
    215.    for pattern in self.url_patterns: 
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in _get_url_patterns 
    244.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in _get_urlconf_module 
    239.    self._urlconf_module = import_module(self.urlconf_name) 
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/usr/local/django/prodapps/urls.py" in <module> 
    5. admin.autodiscover() 
File "/usr/lib/pymodules/python2.6/django/contrib/admin/__init__.py" in autodiscover 
    24.    import_module('%s.admin' % app) 
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/usr/lib/pymodules/python2.6/django/contrib/auth/admin.py" in <module> 
    141. admin.site.register(Group, GroupAdmin) 
File "/usr/lib/pymodules/python2.6/django/contrib/admin/sites.py" in register 
    90.    validate(admin_class, model) 
File "/usr/lib/pymodules/python2.6/django/contrib/admin/validation.py" in validate 
    20.  models.get_apps() 
File "/usr/lib/pymodules/python2.6/django/db/models/loading.py" in get_apps 
    115.   self._populate() 
File "/usr/lib/pymodules/python2.6/django/db/models/loading.py" in _populate 
    61.     self.load_app(app_name, True) 
File "/usr/lib/pymodules/python2.6/django/db/models/loading.py" in load_app 
    78.    models = import_module('.models', app_name) 
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/usr/local/django/prodapps/gn/models.py" in <module> 
    6. from oauth2client.django_orm import CredentialsField, FlowField, Storage 
File "/usr/local/lib/python2.6/dist-packages/oauth2client/django_orm.py" in <module> 
    28. from oauth2client.client import Storage as BaseStorage 
File "/usr/local/lib/python2.6/dist-packages/oauth2client/client.py" in <module> 
    63. CACHED_HTTP = httplib2.Http('.cache') 
File "/usr/local/lib/python2.6/dist-packages/httplib2/__init__.py" in __init__ 
    1073.    self.cache = FileCache(cache) 
File "/usr/local/lib/python2.6/dist-packages/httplib2/__init__.py" in __init__ 
    687.    os.makedirs(self.cache) 
File "/usr/lib/python2.6/os.py" in makedirs 
    157.  mkdir(name, mode) 

Exception Type: OSError at/
Exception Value: [Errno 13] Permission denied: '.cache' 

Итак, кажется простой проблемой - выяснить, где находится этот каталог .cache, и предоставить доступ к веб-серверу, не так ли?

Ну, нет - когда я использую devserver, .cache находится прямо на моем дереве. Но это не похоже на apache?

Так где же это установить? Как настроить его или, по крайней мере, выяснить, где он пытается быть создан, поэтому я могу предоставить доступ?

ответ

2

Проблема с кодом oauth2client для Django - он имеет плохо написанный чек, может ли он доступ к файловой системе, наряду с закодированным относительным путем к директории кэша:

http://code.google.com/p/google-api-python-client/issues/detail?id=75

+0

справа. Итак, мои параметры - либо hack oauth2client, чтобы исправить эту сломанную проверку, либо symlink /.cache к чему-то вроде/tmp/cache? Ба. – zigdon