Как исправить установку Trac, которая начинает выдавать ошибки, связанные с PYTHON_EGG_CACHE?

Мы использовали 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. Я перезапустил Апач. Тем не менее, я получаю ту же ошибку (он все еще говорит, что «текущий каталог кэша яиц установлен в: \n\n /.python_eggs».)

Как мне поступить? Проще всего переустановить Trac? Если я пойду по этому пути, какие шаги мне нужно предпринять, чтобы не потерять существующие данные?


person Larry OBrien    schedule 18.10.2008    source источник


Ответы (5)


Это должно быть исправлено в версии 0.11 в соответствии с их системой отслеживания ошибок.

Если это не так, вы должны попытаться передать переменную окружения в apache, поскольку выполнение SetEnv в файле конфигурации не работает. Добавление чего-то вроде

export PYTHON_EGG_CACHE=/tmp/python_eggs

чтобы сценарий, который вы используете для запуска apache, должен работать.

person agnul    schedule 18.10.2008

Я столкнулся с той же проблемой при обновлении с Trac 10.4 до 0.11 ранее в этом году. Что-то должно было измениться, чтобы эта проблема внезапно появилась — обновленная установка Python или Apache?

Я не помню всех перестановок, которые я пытался решить, но в итоге мне пришлось использовать SetEnv PYTHON_EGG_CACHE /.python-eggs и создать /.python-eggs с разрешениями 777. Возможно, это не лучшее решение, но оно устранило проблему.

Я никогда не исследовал первопричину. Как agnul говорит, что это могло быть исправлено в следующем выпуске Trac.

person Bob Nadler    schedule 18.10.2008

Я много раз боролся с PYTHON_EGG_CACHE и так и не понял, как правильно его установить - envvars apache, httpd.conf (SetEnv и PythonOption), ничего не работало. В конце концов я просто распаковал все яйца питона вручную, в любом случае их было всего два или три - проблема исчезла. Я никогда не понимал, с какой стати люди заархивируют файлы, вес которых не превышает нескольких килобайт...

person Simon    schedule 18.10.2008

У меня такая же проблема. В моем случае каталога там не было, поэтому я создал и передал его пользователю apache (apache на моем компьютере с Centos 4.3). Затем убедитесь, что у него есть права на чтение и запись в каталоге. Вы можете обойтись предоставлением прав rw на каталог, если группа, владеющая каталогом, содержит пользователя apache. Простой ps aux|grep httpd должен показать вам, под какой учетной записью работает ваш сервер, если вы этого не знаете. Если у вас возникли проблемы с поиском каталога, запомните -a в команде ls, так как это «скрытый» каталог.

person Sam Corder    schedule 20.10.2008

Я обнаружил, что использование директивы PythonOption в конфигурации сайта не работает, но работает SetEnv. Однако маршрут переменной среды также будет работать.

person Dana the Sane    schedule 02.01.2009