Eu fui vendido em mod_wsgi e apache ao invés de mod_python. Eu tenho todas as partes instaladas (django, apache, mod_wsgi), mas tenho um problema em implantar.
Estou no osx 10.5 com o apache 2.2 e o django 1.0b2, mod_wsgi-2.3
Meu aplicativo é chamado tred.
Aqui estão os arquivos relevantes: httpd-vhosts (incluído no httpd-conf)
NameVirtualHost tred:80 ServerName tred Alias / admin_media /usr/lib/python2.5/site-packages/django/contrib/admin/media Ordem permitir, negar Permitir de todos Alias / media / Usuários / dmg / Sites / tred / media Ordem permitir, negar Permitir de todos Alias / / Usuários / dmg / Sites / tred / Ordem permitir, negar Permitir de todos WSGIScriptAlias / /Users/dmg/Sites/tred/mod_wsgi-handler.wsgi WSGIDaemonProcess tred user = dmg group = funcionários process = 1 threads = 10 WSGIProcessGroup tred
mod_wsgi-handle.wsgi
import sys importar os sys.path.append (os.path.dirname (os.path.abspath (__ file__)) + "/ ..") os.environ ["DJANGO_SETTINGS_MODULE"] = "tred.settings" import django.core.handlers.wsgi aplicativo = django.core.handlers.wsgi.WSGIHandler ()
Quando eu for para http://tred Eu recebo uma listagem de diretório em vez do site renderizado. Acho que segui os tutoriais corretamente, mas obviamente não está certo. O que posso fazer para que isso funcione?
Respostas:
6 para resposta № 1O que acontece se você remover o Alias /
directiva?
7 para resposta № 2
Observe que as diretivas Alias e WSGIScriptAliasnão tem a mesma precedência. Assim, eles não serão processados na ordem de arquivo conforme escrito. Em vez disso, todas as diretivas Alias têm precedência sobre as diretivas WSGIScriptAlias. Assim, não teria importado se o Alias para "/" aparecesse após o WSGIScriptAlias, ele ainda teria precedência.
5 para resposta № 3
Funciona. Não faço ideia do porquê, mas acontece.
Para referência futura:
Isso funciona porque o Apache processa diretivas de alias em ordem e usa a primeira correspondência. Estava sempre batendo Alias /
, que vai corresponder a qualquer coisa, antes WSGIScriptAlias
.
Primeiro, todos os redirecionamentos são processados antes que os aliases sejam processados e, portanto, uma solicitação que corresponda a um
Redirect
ouRedirectMatch
nunca terá Aliases aplicados. Segundo, os Aliases e Redirecionamentos são processados na ordem em que aparecem nos arquivos de configuração, com a primeira correspondência tendo precedência.
2 para resposta № 4
tente seguir este tutorial - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/
você está tentando hospedar a pasta apache / var / www / e o aplicativo Django na raiz (/). Como a diretiva Alias tem precedência sobre WSGIScriptAlias, ela está renderizando o diretório apache.
você pode tentar hospedar o aplicativo django em / app. Alternativamente, hospede a pasta / var / www / em um local diferente como / public