Apache + django путаница с pythonpath: ImportError: Не удалось импортировать настройки «mysite.settings» - PullRequest
0 голосов
/ 04 ноября 2010

Я использую Python 2.4 и Django 1.2.2 и Apache 2.2.3
Напишите раздел httpd.conf так:

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

settings.py путь: / home / usr / www / mysite /
но это не работает, когда я посещаю http://localhost/mysite/

ImportError: не удалось импортировать настройки 'Mysite.settings'

Я изменил его, изменил / home / usr / www на / var / www и скопировал settings.py в / var / www, он работает Так почему же Apache по-разному относится к двум каталогам?

Ответы [ 2 ]

1 голос
/ 04 ноября 2010

Вы используете SELinux? Сравните вывод

ls -laZ /var/www

и

ls -laZ /home/usr/www

Скорее всего, ваш Apache не сможет получить доступ к вашему домашнему каталогу. Если это проблема, она может быть решена так же просто, как

chcon -R --reference=/var/www /home/usr/www
chmod og+x /home/usr /home/usr/www

Кстати: http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ предупреждает, что "поддержка mod_python будет объявлена ​​устаревшей в будущем выпуске Django. Если вы настраиваете новое развертывание, вам настоятельно рекомендуется рассмотреть возможность использования mod_wsgi или любого другого поддерживаемого бэкэнда". . "

0 голосов
/ 04 ноября 2010

Добавить PythonPath "['/home/usr/www/mysite'] + sys.path"

...