Como usar o Django com o Apache e mod_wsgi¶
A implantação do Django com Apache e mod_wsgi é a forma recomendada de ter o Django funcionando em produção.
O mod_wsgi é um módulo do Apache que pode ser usado para hospedar qualquer aplicação Python que suporte a Interface WSGI do Python, incluindo o Django. O Django irá funcionar com qualquer versão do Apache que suporte o mod_wsgi.
A documentação oficial do mod_wsgi é fantástica; é sua fonte para todos os detalhes sobre como usar o mod_wsgi. você provavalmente irá querer iniciar com a documentação de instalação e configuração.
Configuração Básica¶
Uma vez que você tenha o mod_wsgi instalado e ativado, edite o seu arquivo httpd.conf
e adicione:
WSGIScriptAlias / /path/to/mysite/apache/django.wsgi
A primeira parte acima é a url na qual você estará servindo sua aplicação (/
indica a url raiz), e a segunda parte é a localização de um “arquivo WSGI” – veja
abaixo – no seu sistema, normalmente dentro do seu projeto. Isso diz ao Apache
para servir quaisquer requisições abaixo de dada URL usando a aplicação WSGI definida por aquele arquivo.
Em seguida, vamos efetivamente criar essa aplicação WSGI, então crie o arquivo
mencionado na segunda parte da linha WSGIScriptAlias
e adicione:
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Se o seu projeto não está no PYTHONPATH
padrão você pode adicionar:
sys.path.append('/usr/local/django')
logo abaixo das linhas de import
para colocar o seu projeto no path. Lembre-se de
substituir o ‘mysite.settings’ como seu arquivo de configurações correto.
Veja a Documentação do Apache/mod_python para informações de como servir mídia estática, e a documentação do mod_wsgi para uma explicação de outras diretivas e opções de configuração que você pode usar.
Detalhes¶
Para maiores detalhes, veja a documentação do mod_wsgi, que explica os itens acima em maior detalhamento, e lhe dá todas as possibilidades de opções que você tem ao fazer uma implantação no mod_wsgi.