Назад | Перейти на главную страницу

Что должно быть установлено для DJANGO_SETTINGS_MODULE в Apache при развертывании приложения django?

Я развертываю приложение django, но мне кажется, что мне не удается правильно настроить параметры конфигурации Apache. Я поместил свое приложение django в /path/to/mysite.com/teabag/current/

  DirectoryIndex index.html
  DocumentRoot /path/to/mysite.com/teabag/current/

  <Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE settings_production
    PythonPath "['/path/to/mysite.com/teabag/current'] + sys.path"
    PythonDebug On
  </Location>

  <Location "/media/">
    SetHandler None
  </Location>

  <LocationMatch "\.(jpg|gif|png)$">
    SetHandler None
  </LocationMatch>

Но это дает мне эту ошибку:

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

У меня было подозрение, что мой путь к питону неверен. Должен ли он быть на один уровень выше в /path/to/mysite.com/teabag?, И, следовательно, параметр должен быть "current.settings_production"

Я немного застрял, и любая помощь будет оценена, спасибо.

Я согласен с rkthkr в ответе на ваш вопрос, но я заметил это.

DocumentRoot /path/to/mysite.com/teabag/current/

Разве это не вызовет проблемы с безопасностью? Это даст кому-то доступ к коду вашего приложения. Не должно быть необходимости указывать DocumentRoot на каталог вашего приложения. Все ваши статические носители должны обслуживаться из отдельного каталога. Если вы работаете в системе Linux, вы можете создать символическую ссылку на ваш носитель из каталога приложения в каталог DocumentRoot.

Значение, которое вы используете для PythonPath, должно включать родительские каталоги всех модулей, которые вы собираетесь импортировать в свое приложение. Он также должен включать родительский каталог расположения DJANGO_SETTINGS_MODULE.

Я думаю, это будет:

SetEnv DJANGO_SETTINGS_MODULE current.settings_production
PythonPath "['/path/to/mysite.com/teabag/'] + sys.path"