Django no Passenger
O Passenger ou mod_rails, é uma maneira de fazer deploy de aplicações Ruby/Rails de maneira simples e fácil no Apache. Nesse post não vou explicar detalhes sobre ele, mas, há esse post do Akita sobre o Passenger que é bem interessante. O Passenger suporta o padrão WSGI, e com isso é possível fazer o deploy de uma aplicação feita em Django utilizando o Passenger.
Antes de explicar sobre como fazer isso, que é algo extremamente simples e fácil. Tem um fato interessante nisso tudo. Porque uma ferramenta para deploy de aplicações Rails suportaria Django?
A resposta (segundo o Akita) é Leah Culver. Acho que se a moda pegar, veremos vários 'easy deployers' aparecendo.
Antes de voltar ao tema principal deste post, outra feliz coincidência é , no qual ele explica mais detalhadamente sobre o WSGI, que tem tudo haver com o assunto.
E agora vamos lá:
Primeiramente é necessário instalar o Passenger. Isso está bem documentado no site do próprio passenger: http://www.modrails.com/install.html por isso não vou descrever esse passo.
Para fazer o Django funcionar é necessário apenas criar um script que 'execute' o Django com o seu handler wsgi e configurar o diretório onde fica esse script, nos arquivos de configuração do Apache.
Vamos começar criando nosso arquivo que executará o WSGI. Vamos chamar ele de passenger_wsgi.py
#!/usr/bin/env python
import os, sys
sys.path.insert(0, '/home/seunome/projetos/') #diretorio onde fica seus projetos
os.environ['DJANGO_SETTINGS_MODULE'] = 'meuprojeto.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Feito isso vamos configurar o apache. Setando a variável DocumentRoot com o diretório onde está o seu script wsgi + 'public'. Devido a uma convenção (Rails) a pasta tem que ter esse diretório 'public'
Para exemplificar, se o seu projeto tiver o diretorio '/var/www/meuprojeto/' o DocumentRoot tem que ser '/var/www/meuprojeto/public'
<VirtualHost *>
DocumentRoot /var/www/meuprojeto/public
</VirtualHost>
Na minha conclusão, se sua hospedagem suportar o mod_wsgi use ele. Senão suportar mod_wsgi e suportar passenger, use o passenger!
Em breve falarei mais sobre o Django no passenger.
Muito interessante o artigo... mais uma alternativa :)
Julho 18, 2008 as 2:47 a.m.Bom saber dessa possibilidade. Pode ser muito útil.
Julho 18, 2008 as 9:33 a.m.Hehe, eu conversei com o Ninh, da Phusion esses dias. O suporte de WSGI no Passenger, como eles já disseram, ainda é experimental, mais para mostrar que "eles podem".
Porém, em algumas análises, depois de um certo número de requisições ele está com alguns problemas e a performance cai muito. Isso não é um anúncio oficial, só uma dica off-the-records.
Portanto, em produção, usem mod_wsgi que é estável e maduro, mas se puderem testar o suporte a WSGI no Passenger e passar feedback pra Phusion, ajudaria eles a evoluirem esse suporte mais rapidamente. O maior problema é que eles buscaram algumas listas de python, django e tal mas ninguém se dispôs a ajudar.
Julho 18, 2008 as 3:54 p.m.Ah, esqueci de dizer! Off-the-records também, aguardem porque eu estar na Locaweb não significa que só teremos Rails :-)
Podem aguardar aplicações Django rodando em nossas hospedagens Linux compartilhada também. Estamos trabalhando nisso!
Julho 18, 2008 as 3:56 p.m.4b3pc0ljkv6x80i0
Outubro 10, 2008 as 10:41 p.m.<a href= http://ltbcvx.com >fqoca tewik</a>
http://bntslubuohe.com
<a href= http://zxawjnxjrojk.com >fdjtzoj abscdur</a>
http://ubnmjmmohfxq.com
<a href= http://mjikhmrncdm.com >bvzpbfo edxos</a>
http://cvhegjypev.com
<a href= http://uegkolwkuij.com >mmhxy bfyh</a>
http://butmdpfwcia.com
4b3pc0ljkv6x80i0
Outubro 12, 2008 as 12:20 p.m.<a href= http://wggdifcn.com >eqmxzge wuai</a>
http://tzywlje.com
<a href= http://dabwvuvuiizr.com >ooohb beliiw</a>
http://twmdehhc.com
<a href= http://fhelkri.com >gsfqw bemj</a>
http://hsoqlblgqnf.com
<a href= http://bwugwmkxzt.com >egvigsn wfwry</a>
http://pjwqvkgav.com