【问题标题】:TemplateSyntaxError at / Caught IOError while rendering: (13, 'Permission denied')TemplateSyntaxError at / Caught IOError while rendering: (13, 'Permission denied')
【发布时间】:2011-05-11 06:28:59
【问题描述】:

这是页面上显示的错误

TracebackFile 
"/usr/local/lib64/python2.6/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args,      **callback_kwargs)
File "/usr/local/lib64/python2.6/site-packages/django/views/generic/simple.py" in direct_to_template
  28.     return HttpResponse(t.render(c), mimetype=mimetype)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in render
  123.             return self._render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib64/python2.6/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib64/python2.6/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib64/python2.6/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/defaulttags.py" in render
  313.             return self.nodelist_false.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/local/lib64/python2.6/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/local/lib64/python2.6/site-packages/django/template/defaulttags.py" in render
  437.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in reverse
  391.             *args, **kwargs)))
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in reverse
  312.         possibilities = self.reverse_dict.getlist(lookup_view)
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _populate
  208.                     for name in pattern.reverse_dict:
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _populate
  220.                 lookups.appendlist(pattern.callback, (bits, p_pattern))
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _get_callback
  164.             self._callback = get_callable(self._callback_str)
File "/usr/local/lib64/python2.6/site-packages/django/utils/functional.py" in wrapper
  124.         result = func(*args)
File "/usr/local/lib64/python2.6/site-packages/django/core/urlresolvers.py" in get_callable
  91.                 lookup_view = getattr(import_module(mod_name), func_name)
File "/usr/local/lib64/python2.6/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)

File "/usr/lib64/python2.6/logging/__init__.py" in __init__
  790.             stream = self._open()
File "/usr/lib64/python2.6/logging/__init__.py" in _open
  810.             stream = open(self.baseFilename, self.mode)

Exception Type: TemplateSyntaxError at /
Exception Value: Caught IOError while rendering: (13, 'Permission denied')

这是什么意思?我该如何解决?

【问题讨论】:

  • 看起来应用程序无法读取正在写入日志的文件。为什么要将它们保存到/tmp
  • 你说我在 /tmp 中保存了什么?事实上,我不确定你在说什么。但我认为可能与我的 wsgi 文件中写的“os.environ ['PYTHON_EGG_CACHE'] = '/tmp'”有关。
  • 我按照教程在 wsgi 文件中写了 os.environ ['PYTHON_EGG_CACHE'] = '/tmp'。 :)
  • self.addLogFile("/tmp/masterLog.log", "DEBUG")。您的应用已配置为将某些内容记录到 /tmp/
  • egg缓存仅用于解压egg文件。您可以将其设置为 HOME 的子目录,就可以了。

标签: python django apache mod-wsgi


【解决方案1】:

通常这可能是渲染时的文件权限问题

对您的模板目录执行chmod 777 -R

或者你升级你的 django 版本了吗?

【讨论】:

  • -1。向所有人开放您的模板目录?坏主意。
  • 我的意思是开发环境我说777后我们可以更改它的服务器执行权限
  • 你没有这么说。即便如此,这也是个坏主意。 Web 服务器将以 you 身份运行。为什么你需要对模板目录的写权限,为什么每个人都需要写权限?
【解决方案2】:

运行 Apache 的用户无权写入您的 /tmp/ 目录。

我建议的方法如下:

  • 在非 root 用户下将 Apache 作为守护进程的代理运行。
  • 将日志文件夹从 /tmp/ 更改为 /tmp 中的某个子文件夹,例如 /tmp/projectname
  • 添加apache用户,写入那个文件夹的权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2015-11-21
    • 2018-08-26
    • 2018-08-15
    • 2011-06-10
    • 2013-06-07
    相关资源
    最近更新 更多