1

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

PythonHandler trac.web.modpython_frontend:
  ExtractionError:无法将文件提取到鸡蛋缓存

尝试将文件提取到 Python egg 时发生以下错误
缓存:

  [Errno 13] 权限被拒绝:'/.python-eggs'

Python egg 缓存目录当前设置为:

  /.python-鸡蛋

也许您的帐户没有对该目录的写入权限?你可以
通过设置 PYTHON_EGG_CACHE 环境更改缓存目录
指向可访问目录的变量

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

我应该如何进行?重新安装Trac是最简单的事情吗?如果我走这条路,我需要采取哪些步骤来确保我不会丢失现有数据?

4

5 回答 5

5

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

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

export PYTHON_EGG_CACHE=/tmp/python_eggs

到你用来启动 apache 的脚本应该可以工作。

于 2008-10-18T17:19:00.750 回答
1

今年早些时候从 Trac 10.4 升级到 0.11 时,我遇到了同样的问题。一定是发生了一些变化,这个问题才突然出现——更新的 Python 或 Apache 安装?

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

我从来没有调查过根本原因是什么。正如agnul所说,这可能已在后续的 Trac 版本中得到修复。

于 2008-10-18T17:25:16.807 回答
1

我已经和很多人进行了斗争,PYTHON_EGG_CACHE但我从来没有想出正确的设置方法——apache 的 envvars、httpd.conf(SetEnv 和 PythonOption),没有任何效果。最后我只是手动解压了所有的 python 鸡蛋,反正只有两三个 - 问题消失了。我从来不明白为什么地球上的人一开始压缩文件的重量不超过几千字节......

于 2008-10-18T18:40:52.193 回答
0

我有同样的问题。在我的情况下,该目录不存在,所以我创建并将其分配给 apache 用户(我的 centos 4.3 盒子上的 apache)。然后确保它对该目录具有读写权限。如果拥有该目录的组包含 apache 用户,您可以通过授予该目录的 rw 权限来解决问题。如果您不知道,一个简单的 ps aux|grep httpd 应该会显示您的服务器在哪个帐户下运行。如果找不到目录,请记住 ls 命令上的 -a,因为它是“隐藏”目录。

于 2008-10-20T17:28:49.313 回答
0

我发现在站点配置中使用 PythonOption 指令不起作用,但 SetEnv 可以。环境变量路由也将起作用。

于 2009-01-02T05:39:07.757 回答