Я развертываю приложение 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"