Django com Passenger na DreamHost

13/06/2011

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.

 

Categorizado em: Django, Howtos

Acompanhe os comentários através da feed | Deixe um comentário | Trackback URL

Deixe um comentário

 



Este site usa Wordpress com uma customização do tema openark-blog.