如何修复开始提供与PYTHON_EGG_CACHE相关的错误的Trac安装?
-
03-07-2019 - |
题
我们一直在使用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没有。环境变量路线也可以使用。