2010-03-30 2 views
1

Мой проект находится под:/home/projects/testing, и я добавляю это к buttom моего файла /etc/httpd/conf/httpd.conf на компьютере Centos, но это не работает,apache виртуальный хост для работы с django

<Location "/testing/"> 
    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE testing.settings 
    PythonOption django.root /testing 
    PythonDebug On 
    PythonPath "['/home/projects/'] + sys.path" 
</Location> 

но при запросе http://localhost/testing/jobs к примеру, я получаю:

 
Mod_python error: "PythonHandler django.core.handlers.modpython" 

Traceback (most recent call last): 

    File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch 
    result = object(req) 

............. 

File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/conf/__init__.py", line 75, in __init__ 
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e) 

ImportError: Could not import settings 'testing.settings' (Is it on sys.path? Does it have syntax errors?): No module named testing.settings 

ответ

3

Вы хотите как папка проекта и папку тестирования в вашем PYTHONPATH, потому что ваш проект использует пути без " испытания "в нем:

PythonPath "['/home/projects/', '/home/projects/testing/'] + sys.path" 
+0

обновил PythonPath в соответствии с инструкциями и сделал настройки непосредственно в файле настроек внутри проекта. Еще не повезло. – khelll

+0

@reko_t: в трассировке указано «ошибка импорта», «нет модуля с именем testing.settings». Предполагая, что существуют файлы '/ home/projects/testing/__ init __. Py' и'/home/projects/testing/settings.py', '/ home/projects' на пути должно быть достаточно. Вот почему я бы сказал, что более вероятно, что mod_python не может читать файлы, а не найти их. – MattH

+1

Если '/ home/projects/testing/__ init __. Py' не существует, то импорт' testing.settings' не будет выполнен. Я предлагаю сделать ваш путь python как предложенный @reko_t, но затем используйте: 'SetEnv DJANGO_SETTINGS_MODULE settings'. Это должно работать погода '__init __. Py' существует или нет. –

0

Путь выглядит хорошо для меня, я только дважды проверил, что предметы в sys.path работают с завершающими косыми чертами.

Я бы предположить, что это вопрос права доступа к файлам:

  • ли апач пользователь работает под иметь доступ к файлам проекта?
  • Является ли selinux предотвращением доступа?
+0

сделал папку с разрешением 777, я тоже использую Centos, нет selinux AFAIK. Еще не повезло. – khelll

+0

У меня не было контакта с Centos, но наличие этого документа, http://www.centos.org/docs/5/html/5.1/Deployment_Guide/rhlcommon-chapter-0017.html, побудило бы меня поверить что у Центоса по существу нет селин. – MattH