Django + Apache - file.open()权限被拒绝

时间:2011-07-28 08:44:38

标签: django file apache2 permission-denied

所以我有以下问题: 在一个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()

所以用户点击一个按钮,“建模者”功能正在获取信息,并试图在日志文件中添加一行。但它不起作用! apache error.log表示

IOError:[Errno 13]权限被拒绝:'media / log.txt',referer:...

chmod 777媒体没有帮助..我知道我必须以某种方式配置apache让django写文件,但没有找到如何:(

如果不是在apache下它工作得很好(所以url.py就可以了),但我需要让它与apache一起工作。该应用程序的其他部分也可以正常工作,但没有文件操作..直到现在..

1 个答案:

答案 0 :(得分:2)

你试过chmod 777 media/log.txt吗? ls -l media/rwxrwxrwx log.txt吗?如果是,则尝试在log.txt

中指定f = open('...log.txt')的绝对路径