#python #apache #mod-wsgi #redhat #setuptools
#python #apache #мод-wsgi #redhat #setuptools
Вопрос:
Я пытаюсь настроить Apache с помощью mod_wsgi для запуска Django на Red Hat box, но я получаю страшную ошибку извлечения кэша egg «Отказано в разрешении: ‘/ home/pineg /.python-eggs'».
Я сделал то, что он сказал, и сделал это первой строкой:
SetEnv PYTHON_EGG_CACHE /opt/tmp
в /etc/httpd/conf/httpd.conf
И перезапустил Apache:
>sudo /etc/init.d/httpd restart
Но я все еще получаю ту же ошибку (ниже). Похоже, что Apache игнорирует мой SetEnv.
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] The following error occurred while trying to extract file(s) to the Python egg
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] cache:
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] [Errno 13] Permission denied: '/home/pineg/.python-eggs'
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] The Python egg cache directory is currently set to:
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] /home/pineg/.python-eggs
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561]
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] Perhaps your account does not have write access to this directory? You can
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] change the cache directory by setting the PYTHON_EGG_CACHE environment
[Fri May 06 10:08:37 2011] [error] [client 10.101.11.561] variable to point to an accessible directory.
Ответ №1:
Эта проблема и решение описаны в документации mod_wsgi по адресу:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User
Ответ №2:
Я сейчас ничего не знаю о специфике Apache-Django, но в целом
SetEnv PYTHON_EGG_CACHE /opt/tmp
не устанавливает переменную среды, она только добавляет ее в environ
dict, которую application(environ, start_response)
функция в index.wsgi
должна принимать.
Ответ №3:
Ну что ж, вместо того, чтобы дурачиться с этим, я сказал Python не устанавливать его как глупое яйцо:
>sudo python setup.py install --single-version-externally-managed --record=/opt/python/source/weird_egg_thing