Como o DJANGO_SETTINGS_MODULE deve ser configurado no Apache ao implementar um aplicativo django?

1

Estou implantando um aplicativo django, mas não consigo obter as configurações corretas na configuração do Apache. Eu coloquei meu aplicativo django em /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>

Mas está me dando este erro:

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

Eu suspeitava que meu caminho de python estava incorreto. Deve ser um nível acima em /path/to/mysite.com/teabag ?, e, portanto, a configuração deve ser "current.settings_production"

Estou um pouco preso, e qualquer ajuda seria apreciada, obrigado.

    
por Wilhelm 09.06.2009 / 08:43

2 respostas

1

O valor que você usa para PythonPath deve incluir os diretórios pai de todos os módulos que você importará em seu aplicativo. Também deve incluir o diretório pai do Localização DJANGO_SETTINGS_MODULE.

Eu acho que seria:

SetEnv DJANGO_SETTINGS_MODULE current.settings_production
PythonPath "['/path/to/mysite.com/teabag/'] + sys.path"
    
por 09.06.2009 / 08:53
1

Concordo com o rkthkr na resposta à sua pergunta, mas notei isso.

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

Isso não causaria um problema de segurança? Isso daria a alguém acesso ao código do seu aplicativo. Não deve haver necessidade de apontar seu DocumentRoot para o seu diretório de aplicativos. Toda a mídia estática deve ser exibida em um diretório separado. Se você está em um sistema Linux, você pode ligar simbolicamente sua mídia do seu diretório de aplicativos para o seu diretório DocumentRoot.

    
por 09.06.2009 / 15:08

Tags