Ну, спасибо всем, кто ответил на вопрос. Во всяком случае, я думаю, что решил тайну.
SELinux полностью отключен на машине, поэтому проблема в том, что svn co не может найти config_dir для учетной записи пользователя, под которой он работает.
Apache / mod_python не читает в среде оболочки учетной записи пользователя, на которой работает apache. Таким образом, для примера $ HOME не виден mod_python, когда apache
работает под каким-то реальным пользователем (не никем)
Теперь у 'svn co' есть флаг --config-dir, который указывает на каталог конфигурации для чтения параметров. По умолчанию это $ HOME / .subversion, т.е. он соответствует домашнему каталогу учетной записи пользователя. Очевидно, что когда $ HOME не существует, mod_python переходит в корневой каталог dir (/ root) и пытается там поработать с содержимым .subversion - что, очевидно, является
с треском проваливается.
положить
SetEnv HOME / home / qa
в /etc/httpd/conf/httpd.conf не решает проблему из-за того, что SetEnv не имеет ничего общего со средой оболочки - он только устанавливает среду, связанную с Apache
Аналогично PythonOption - устанавливает только переменные, связанные с mod_python, которые могут быть прочитаны с помощью req.get_options () после этого
Запуск 'svn co --config-dir / home / ...' определенно дает обходной путь для запуска из mod_python, но мешает тем, кто попытается запустить скрипт из командной строки.
Таким образом, предлагаемое (и работающее) решение состоит в том, чтобы установить переменную среды HOME до запуска appache.
Например, в скрипте /etc/init.d/httpd
QAHOME=/home/qa
...
HOME=$QAHOME LANG=$HTTPD_LANG daemon $httpd $OPTIONS