我们一直在使用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 :(得分:5)
根据bug tracking system,应该在0.11中修复。
如果不是这种情况,您应该尝试将环境var传递给apache,因为在配置文件中执行SetEnv不起作用。添加类似
的内容export PYTHON_EGG_CACHE=/tmp/python_eggs
到用于启动apache的脚本应该可以正常工作。
答案 1 :(得分:1)
今年早些时候从Trac 10.4升级到0.11时遇到了同样的问题。刚刚突然出现这个问题的一些东西必须改变 - 更新的Python或Apache安装?
我不记得我试图解决这个问题的所有排列,但我最终不得不使用SetEnv PYTHON_EGG_CACHE /.python-eggs
并使用777权限创建/.python-eggs。这可能不是最好的解决方案,但它解决了问题。
我从未调查过根本原因。正如agnul所述,这可能已在随后的Trac版本中得到修复。
答案 2 :(得分:1)
我与PYTHON_EGG_CACHE
打了很多次战斗,我从未想出设置它的正确方法 - apache的envvars,httpd.conf(SetEnv和PythonOption),没有任何效果。最后我只是手动打开所有的蟒蛇蛋,无论如何只有两三个 - 问题消失了。我从来没有理解为什么人们在第一时间压缩不超过几千字节的文件......
答案 3 :(得分:0)
我遇到了同样的问题。在我的情况下,目录不在那里,所以我创建并chown'ed它到apache用户(我的centos 4.3框上的apache)。然后确保它对目录具有读写权限。如果拥有该目录的组包含apache用户,则可以通过向该目录授予rw权限。一个简单的ps aux | grep httpd应该显示你的服务器运行的帐户,如果你不知道它。如果您在找到目录时遇到问题,请记住ls命令中的-a,因为它是一个“隐藏”目录。
答案 4 :(得分:0)
我发现在网站config 中使用PythonOption指令没有工作,但是SetEnv没有。环境变量路线也可以使用。