Configurando sua hospedagem Django + FastCGI

Postado em: Janeiro 22, 2008
Tags: django

Vou descrever aqui os passos para se configurar uma hospedagem Django + FastCGI na TeHospedo.

Acesse seu espaço no servidor de hospedagem via SSH, no Linux basta digitar no console:

ssh usuario@dominio

Para acessar o ssh no Windows use o PuTTY

Já logado no ssh, na raiz

/home/usuario/
digite
mkdir django_projects e 
mkdir django_src

Agora vamos baixar a versão do SVN do Django, execute o comando
svn co http://code.djangoproject.com/svn/django/trunk/ django_src
isso ira baixar a ultima versão do Django na pasta “django_src”.

Edite o arquivo ".bash_profile" lembrando que esse arquivo fica na raiz e é invisível, para editar esse e qualquer outro arquivo eu recomendo o uso do editor nano, então digite

nano .bash_profile
com o arquivo aberto adicione as seguintes linhas no final do arquivo:
export PATH=$PATH:$HOME/django_src/django/bin
export PYTHONPATH=$PYTHONPATH:$HOME/django_src:$HOME/django_projects

Digite ctrl+o tecle "enter" e depois ctrl+x para fechar o arquivo. Execute o comando
source .bash_profile
para que o sistema "veja" o arquivo atualizado.
Inicie um novo projeto em Django, vá para a pasta "django_projects"
cd django_projects
e execute
django-admin.py startproject meuprojeto
altere as permissões do arquivo settings.py
chmod 600 meuprojeto/settings.py

Volte para a raiz usando o comando “cd (espaço)” não é para digitar o “(espaço)” isso é apenas para dizer que após o “cd” vai um espaço, assim você volta para a raiz mais rapidamente. Vá para a pasta “public_html”, nesta pasta execute o seguinte

wget http://svn.saddi.com/py-lib/trunk/fcgi.py
com esse comando faremos o download do arquivo "fcgi.py" para a nossa pasta “public_html”. Vamos criar o arquivo “dispatch.fcgi”, execute
nano dispatch.fcgi
e dentro do arquivo inclua as seguintes linhas:
#!/usr/bin/python
import sys
sys.path += ['/home/usuario/django_src']
sys.path += ['/home/usuario/django_projects']
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'meuprojeto.settings'
WSGIServer(WSGIHandler()).run()

Salve e feche, vamos tornar esse arquivo e o "fcgi.py" executáveis, execute o comando

chmod +x dispatch.fcgi fcgi.py

Vamos criar mais um arquivo, o “.htaccess”, então
nano .htaccess
e dentro dele inclua as seguintes linhas:
RewriteEngine On
RewriteBase /
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

Com isso você já pode abrir um browser e testar sua nova aplicação Django, se tudo ocorrer bem ira aparecer a pagina padrão do Django com a frase “It worked!”

Agora vamos nos aprofundar um pouco mais, o que fizemos foi apenas o básico, mas ainda temos que ver como configurar um subdomínio e as pastas “media”. Dentro da pasta “public_html” vamos criar links simbólicos para as pastas “media” que queremos usar. Criando um link para a pasta “media” do admin, execute o seguinte comando

ln -s $HOME/django_src/django/contrib/admin/media $HOME/public_html/admin_media
com isso criamos um link chamado “admin_media” na pasta “public_html”, para outras pastas media faça a mesma coisa.
Só criar um link não basta, temos que editar o arquivo “.htaccess” na pasta “public_html” e adicionar a seguinte linha
RewriteRule ^(admin_media/.*)$ - [L]
pronto, com isso feito temos um link para a pasta media do admin pronta para ser usada em nosso projeto.

Configurar um subdomínio é fácil, após você ter criado um no cpanel teremos uma pasta nova no “public_html” com o nome do subdomínio, apenas copie os arquivos: .htaccess, dispatch.fcgi, fcgi.py e faça as alterações necessárias para o seu projeto, lembrando que o projeto deve ficar na pasta “django_projects”.

Para reiniciar seu projeto após uma atualização do mesmo, no terminal ssh digite "ps ux" e procure pelo processo que termina com "dispatch.fcgi" veja o numero PID dele é a segunda coluna, execute o comando "kill" e o numero do processo, feito isso você mata o processo e no próximo acesso ao site do projeto ele sera iniciado novamente com as alterações já prontas.

Era isso, qualquer coisa estou a disposição, é só deixar um comentário que assim que eu poder eu retorno.

[]'s



Não será divulgado!

Um site válido!

Leandro-Tiger em Janeiro 23, 2008

Rafael,

Show de bola !!!, simples, objetivo e direto. Meus sinceros parabéns pelo artigo, vou aproveitar e vou informar ele para o meu provedor de hospedagem.

Um grande abraço do colega Leandro.

Roberto Bertó em Fevereiro 4, 2008

Rafael, obrigado novamente por ter ajudado durante os testes do Django na implementação da TeHospedo.

Publiquei em nosso blog os agradecimentos formais no post de lançamento da hospedagem de sites Django na TeHospedo.

Se precisar de uma versão mais recente do Python, podemos providenciar.

Walter Cruz em Março 3, 2008

Muito bem explicado cara! Boa dica.

Walter Cruz em Abril 19, 2008

Apenas uma nota: o fcgi.py está sendo substituído pelo flup :D

Italo Maia em Maio 4, 2008

Não conseguir fazer o deploy com esse tuto. O ssh continua acusando django 0.96 : /. Eu preciso desativar o django 0.96 ou fazer alguma coisa do genero? Dei um echo PYTHONPATH e o mais engraçado é que saiu certinho, com o caminho do django_src e tudo.

Django
Desenvolvido com Django, Aptana, Gimp, Inkscape | Rafael Campos de Bastiani - RFDev.org - 2008