Как вы исправляете установку Trac, которая начинает давать ошибки, связанные с PYTHON_EGG_CACHE?
Мы использовали Trac для отслеживания задач / дефектов, и все шло достаточно хорошо, но сегодня утром он начал выдавать ошибку 500. Глядя в журнал ошибок Apache, я получаю трассировку стека, которая заканчивается:
PythonHandler trac.web.modpython_frontend: ExtractionError: Невозможно извлечь файл (ы) в кеш яиц Следующая ошибка произошла при попытке извлечь файл (ы) в яйцо Python кэш: [Errno 13] В доступе отказано: '/.python-eggs' Каталог кеша Python в настоящее время установлен на: /.python-eggs Возможно, ваша учетная запись не имеет доступа для записи в этот каталог? Вы можете изменить каталог кеша, установив среду PYTHON_EGG_CACHE переменная для указания на доступный каталог
Поэтому я явно установил PYTHON_EGG_CACHE в /srv/trac/plugin-cache. Я перезапустил Apache. Тем не менее, я получаю ту же ошибку (она по-прежнему говорит, что "текущая директория кеша яиц установлена в: \n\n /.python_eggs.")
Как мне поступить? Это самая простая вещь, чтобы сделать, чтобы переустановить Trac? Если я пойду по этому пути, какие шаги мне нужно предпринять, чтобы не потерять существующие данные?
5 ответов
Это должно быть исправлено в 0.11 в соответствии с их системой отслеживания ошибок.
Если это не так, попробуйте передать переменную окружения в apache, так как выполнение SetEnv в файле конфигурации не работает. Добавление чего-то вроде
export PYTHON_EGG_CACHE=/tmp/python_eggs
к сценарию, который вы используете для запуска apache, должен работать.
Я столкнулся с той же проблемой при обновлении с Trac 10.4 до 0.11 ранее в этом году. Что-то должно было измениться, чтобы эта проблема появилась внезапно - обновленная установка Python или Apache?
Я не помню все перестановки, которые я пытался решить, но мне пришлось использовать SetEnv PYTHON_EGG_CACHE /.python-eggs
и создайте /.python-eggs с разрешениями 777. Возможно, это не лучшее решение, но оно решило проблему.
Я никогда не исследовал причину. Как говорит Агнул, это могло быть исправлено в последующем выпуске Trac.
Я боролся со многими PYTHON_EGG_CACHE
и я так и не нашел правильный способ его установки - envvars apache, httpd.conf (SetEnv и PythonOption), ничего не получалось. В конце концов, я просто распаковал все яйца питона вручную, так или иначе, осталось только два или три - проблема исчезла. Я никогда не понимал, почему люди архивируют файлы весом не более нескольких килобайт в первую очередь...
У меня такая же проблема. В моем случае каталога там не было, поэтому я создал его и передал его пользователю apache (apache на моем поле centos 4.3). Затем убедился, что у него есть права на чтение и запись в каталоге. Вы можете обойтись путем предоставления прав rw для каталога, если группа, которой принадлежит каталог, содержит пользователя apache. Простой ps aux|grep httpd должен показать вам, под какой учетной записью работает ваш сервер, если вы этого не знаете. Если у вас возникли проблемы с поиском каталога, запомните -a в команде ls, так как это "скрытый" каталог.
Я обнаружил, что использование директивы PythonOption в конфигурации сайта не работает, но SetEnv сделал. Переменная окружения также будет работать.