A DreamHost recomenda que você sirva os seus sites feitos em Django com o Fusion Passenger (mas FastCGI ainda é suportado). O Passenger foi criado inicialmente para aumentar a performance e principalmente a escalabilidade de sites feitos em Rails, mas logo nas primeiras versões o Passenger passou a suportar também o padrão WSGI (para sites em Python). Vamos às configurações…
1º passo - Criar um novo domínio e configurá-lo para utilizar o Passenger. Marque a opção Passenger (Ruby/Python apps only), como mostrado na figura abaixo:
2º passo – Enviar para o servidor o diretório contendo o seu projeto Django. Ele deve ficar no mesmo nível do diretório public (o diretório public é criado automaticamente quando o Passenger é ativado no domínio):
~/seu_site.com.br/public ~/seu_site.com.br/projeto_django
3º passo – Envie para o servidor a versão desejada do Django e dos demais módulos utilizados pelo seu site, e os instale em ~/opt com o comando abaixo (o comando abaixo deve ser executado para cada módulo):
python setup.py install --prefix $HOME/opt
4º passo – Criar o arquivo ~/seu_site.com.br/passenger_wsgi.py com o conteúdo abaixo:
import sys, os if sys.version < "2.4": os.execl("/usr/bin/python2.4", "python2.4", *sys.argv) # Path para o Django e demais módulos sys.path.insert(1, "/home/seu_usuario/opt/lib/python2.5/site-packages") # Path para as apps do projeto sys.path.insert(1, "/home/seu_usuario/seu_site.com.br/projeto_django") # Path para o projeto sys.path.insert(1, "/home/seu_usuario/seu_site.com.br") os.environ['DJANGO_SETTINGS_MODULE'] = "projeto_django.settings" import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
5º passo – Ajustar as variáveis PATH e PYTHONPATH no arquivo ~/.bashrc ou ~/.bash_profile, para que seja possível usar na shell o Django e os módulos que foram instalados (opcional, pois os paths do Passenger são definidos no arquivo passenger_wsgi.py):
export PATH=$HOME/opt/bin/:$PATH export PYTHONPATH=$HOME/opt/lib/python2.5/site-packages/
6º passo – Criar o arquivo ~/seu_site.com.br/tmp/restart.txt (este arquivo é utilizado para reiniciar o Passenger; para reiniciá-lo execute touch restart.txt).
E por fim, a sua estrutura de diretórios deve ficar assim:
~/opt/bin ~/opt/lib/python2.5/site-packages ~/seu_site.com.br/projeto_django ~/seu_site.com.br/passenger_wsgi.py ~/seu_site.com.br/public ~/seu_site.com.br/tmp/restart.txt
Fique à vontade para deixar um comentário caso tenha alguma dúvida.
