Django + Apache - file.open () Отказано в доступе - PullRequest
1 голос
/ 28 июля 2011

Итак, у меня следующая проблема: На ivent javascript отправляет некоторый текст на сервер django, и есть две функции, которые должны работать: views.py:

def log(request):
  f = open('media/log.txt', 'r')
  return HttpResponse(f, mimetype='text/plain')

def modelers(request):
    mod_stat = request.POST['id']
    time = datetime.datetime.now().strftime("%b %d %Y %H:%M:%S")
    file=open('media/log.txt', 'a')
    file.write(time)
    file.write(' ')
    file.write(mod_stat)
    file.write('\n')
    file.close()

return ErrorResponse()

, поэтому пользователь нажимает на кнопку, и функция «modelers» получает информацию и пытается добавить строку в файл журнала. Но это не работает! Apache error.log говорит, что

IOError: [Errno 13] Отказано в доступе: 'media / log.txt', реферер: ...

chmod 777 media не помогает .. Я знаю, что должен как-то настроить apache, чтобы позволить django записывать файлы, но не нашел как: (

Если не под Apache, он прекрасно работает (поэтому url.py в порядке), но мне нужно, чтобы он работал с apache. Другая часть приложения также работает нормально, но нет никаких операций с файлами .. до сих пор ..

1 Ответ

2 голосов
/ 28 июля 2011

Вы пробовали chmod 777 media/log.txt?ls -l media/ говорит rwxrwxrwx log.txt?Если да, то попробуйте указать абсолютный путь к log.txt в f = open('...log.txt')

...