我们一直在使用Trac进行任务/缺陷跟踪,事情进展顺利,但今天早上它开始提供500错误。查看Apache error_log,我得到一个最终的堆栈跟踪:

PythonHandler trac.web.modpython_frontend:
  ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

  [Errno 13] Permission denied: '/.python-eggs'

The Python egg cache directory is currently set to:

  /.python-eggs

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory

所以我明确地将PYTHON_EGG_CACHE设置为/ srv / trac / plugin-cache。我重新启动了Apache。然而我得到了同样的错误(它仍然说“鸡蛋缓存目录当前设置为:\ n \ n /.python_eggs."”

我该怎么办?重新安装Trac最简单的事情是什么?如果我走这条路,我需要采取哪些措施来确保我不会丢失现有数据?

有帮助吗?

解决方案

根据他们的错误跟踪系统,应该在0.11中修复。

如果不是这种情况,您应该尝试将环境var传递给apache,因为在配置文件中执行SetEnv不起作用。添加类似

的内容
export PYTHON_EGG_CACHE=/tmp/python_eggs

到用于启动apache的脚本应该可以正常工作。

其他提示

今年早些时候从Trac 10.4升级到0.11时遇到了同样的问题。刚刚突然出现这个问题的一些东西必须改变 - 更新的Python或Apache安装?

我不记得我尝试解决这个问题的所有排列,但我最终不得不使用 SetEnv PYTHON_EGG_CACHE /.python-eggs 并创建具有777权限的/.python-eggs。这可能不是最好的解决方案,但它解决了问题。

我从未调查过根本原因。正如 agnul 说,这可能已在随后的Trac版本中得到修复。

我已经与 PYTHON_EGG_CACHE 进行了多次斗争,我从未想出设置它的正确方法 - apache的envvars,httpd.conf(SetEnv和PythonOption),没有任何效果。最后我只是手动打开所有的蟒蛇蛋,无论如何只有两三个 - 问题消失了。我从来没有理解为什么人们在第一时间压缩不超过几千字节的文件......

我遇到了同样的问题。在我的情况下,目录不在那里,所以我创建并chown'ed它到apache用户(我的centos 4.3框上的apache)。然后确保它对目录具有读写权限。如果拥有该目录的组包含apache用户,则可以通过向该目录授予rw权限。一个简单的ps aux | grep httpd应该显示你的服务器运行的帐户,如果你不知道它。如果您在查找目录时遇到问题,请记住ls命令中的-a,因为它是“隐藏”的命令。 。目录

我发现在网站config 中使用PythonOption指令没有工作,但是SetEnv没有。环境变量路线也可以使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top