Django
De TeHospedia
A linguagem Python na TeHospedo é suportada na plataforma Linux em modo cgi ou fastcgi.
- versão 2.4: /usr/bin/python (padrão)
- versão 2.5: /usr/bin/python2.5
Tabela de conteúdo |
Django
O Django é disponibilizado em FastCGI, que é uma camada que cria persistência ao CGI
Características da implementação TeHospedo Django com FastCGI
- velocidade comparável as implementações com mod_python mas com vantagem de processos isolados
- boa escalabilidade: capaz de atender a até dezenas de milhares de hits por dia
- processo FastCGI roda com o usuário ssh do cliente, assim, os arquivos lidos/gravados/executados pelos scripts serão feitos com a permissão do usuário.
- através do ssh é possível terminar o processo FastCGI para reler as configurações
- possibilidade de instalar qualquer versão do Django ou usar a última versão estável que já é pré-disponibilizada no servidor
- nossos administradores instalarão as extensões python que você precisa, se for possível
Planos disponíveis
Consulte nossa página comercial sobre hospedagem de sites com Django
Instalação do Django
- solicite acesso SSH ao suporte (somente disponível em servidor Linux)
- após, siga os passos abaixo, que prepara o ambiente Django com FastCGI na TeHospedo. Recomendamos seguir os passos neste artigo para ampliar seu conhecimento. Se não conseguir, solicite ao suporte para que seja feito uma instalação.
Iniciando o ambiente
- usuários Linux: acesse sua conta por SSH:
ssh usuario@example.com
- usuários Windows: acesse sua conta por SSH usando o PuTTY, um cliente gratuito SSH
- dentro do SSH, você estará no seu $HOME, digamos /home/usuario
- vamos criar uma pasta para seus projetos. Dentro dessa pasta, você colocará subpastas, cada qual com um projeto em Django.
mkdir ~/django_projects
Opção 1: usando versão SVN do Django
Se você precisar usar a versão SVN, pode instalar o Django localmente, conforme essas instruções. Senão, vá para "Opção 2: usando versão release do Django".
Atenção: Se você seguir o passo "Opção 2: usando versão release do Django", pule este passo.
- vamos criar uma pasta dentro de seu $HOME para colocar a versão atual do SVN do Django:
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
- edite o arquivo ".bash_profile" lembrando que esse arquivo fica na raiz e é invisível, para editar esse e qualquer outro arquivo você pode usar o editor nano, que é mais simples, ou o vi, par ao nano 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 para "usar" a nova configuração
source .bash_profile
Opção 2: usando versão release do Django
Nesta opção você usará uma instalação global do Django no servidor. Já deve haver uma instalação estar instalado no servidor (se não estiver, basta solicitar ao suporte). Usamos sempre sua última versão disponibilizada pelo http://www.djangoproject.com/, seja a 0.96.
Atenção: Se você seguir o passo "Opção 1: usando versão SVN do Django", pule este passo.
- edite o arquivo ".bash_profile" lembrando que esse arquivo fica na raiz e é invisível, para editar esse e qualquer outro arquivo você pode usar o editor nano, que é mais simples, ou o vi, par ao nano digite:
nano ~/.bash_profile
- com o arquivo aberto adicione as seguintes linhas no final do arquivo:
export PYTHONPATH=$PYTHONPATH:$HOME/django_projects
- digite ctrl+o tecle "enter" e depois ctrl+x para fechar o arquivo.
- execute o comando para "usar" a nova configuração
source .bash_profile
Iniciando um projeto Django
Agora que você optou por usar a versão SVN ou uma versão released do Django e configurou seu ambiente, vamos criar um novo projeto.
- dentro da pasta dos projetos, vamos inicializar um projeto, você poderá criar quantos projetos precisar. Em nosso exemplo usaremos meuprojeto, que é o nome do seu projeto, deve estar todo em minúsculo, sem espaços e carácteres especiais:
mkdir -p ~/django_projects cd ~/django_projects django-admin.py startproject meuprojeto
- altere as permissões do arquivo settings.py para impedir leitura/gravação na mesma
chmod 0600 ~/django_projects/meuprojeto/settings.py
Agora vamos preparar o .htaccess e o FastCGI. Para preparar o FastCGI, para isso, iremos usar o fcgi.py, que é um FastCGI/WSGI gateway para o Python de autoria do Allan Saddi. Também usaremos mod_rewrite com o .htaccess para preparar as URLs amigáveis que o Django precisa.
Aqui temos três opções:
- usar o Django diretamente na raíz de seu site:
http://example.com/ - usar o Django diretamente em um subdomínio de seu site:
http://meuprojeto.example.com/ - usar o Django em uma subpasta de seu site ou subdomínio:
http://example.com/meuprojeto/
Primeiro crie o subdomínio pelo painel de controle, se for o caso. Nos outros dois casos a única diferença é no .htaccess. Na opção 1 e 2, quando for configurar o .htaccess use:
RewriteBase /
Na opção 3, use no .htaccess:
RewriteBase /aplicacao/
Em qualquer um dos casos, você deve acessar a pasta web onde a aplicacação está e criá-la se não existe.
Vamos continuar a documentação no caso 3.
- você pode criar uma pasta em branco
mkdir ~/public_html/meuprojeto/ chmod 0755 ~/public_html/meuprojeto/
- agora vamos preparar o FastCGI. Primeiro baixando o gateway
cd ~/public_html/meuprojeto/ wget http://svn.saddi.com/py-lib/trunk/fcgi.py chmod 0755 fcgi.py
- agora vamos preparar o dispatch para o FastCGI. Vamos abrir o arquivo:
nano ~/public_html/meuprojeto/dispatch.fcgi
- para o conteúdo do dispatch.fcgi, use o exemplo abaixo, somente alterando as palavras USUARIO para seu usuário SSH e MEUPROJETO para o nome de seu projeto, ambos em minúsculo, usei maiúsculo apenas para facilitar a localização. Outra questão, se você não está usando a versão SVN do Django, pode comentar a linha 3 (/home/USUARIO/django_src) com um # na frente.
Modelo para SVN:
#!/usr/bin/python import sys altpath = sys.path sys.path = ['/home/USUARIO/django_src'] sys.path += ['/home/USUARIO/django_projects'] sys.path += altpath 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 o dispatcher executável:
chmod 0755 ~/public_html/meuprojeto/dispatch.fcgi
Modelo para versao 0.96
#!/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 o dispatcher executável:
chmod 0755 ~/public_html/meuprojeto/dispatch.fcgi
Vamos agora preparar o .htaccess para ligar tudo.
- edite o arquivo .htaccess
nano ~/public_html/meuprojeto/.htaccess
Neste arquivo inclua:
RewriteEngine On RewriteBase / RewriteRule ^(dispatch\.fcgi/.*)$ - [L] RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
Lembrando que o RewriteBase deve ser ajustado conforme anteriormente explicado.
Com isso você já pode abrir um browser e testar sua nova aplicação Django.
Se tudo ocorrer bem irá aparecer a página padrão do Django com a frase “It worked!” e você agora deve acessar django_projects/meuprojeto e editar as configurações.
Configurando o media
Precisamos criar um link para a pasta “media” do admin. Se você instalou a versão SVN:
ln -s ~/django_src/django/contrib/admin/media ~/public_html/admin_media
Se você não instalou a versão SVN do Django:
ln -s /usr/local/src/Django-0.96.1/django/contrib/admin/media ~/public_html/admin_media
Com isso criamos um link chamado “admin_media” na pasta “public_html”, para outras pastas media faça o mesmo procedimento.
Agora se você optou por publicar sua aplicação direto no public_html/ ou em um subdomínio, é necessário editar o .htaccess e colocar, logo após a linha
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
uma linha:
RewriteRule ^(admin_media/.*)$ - [L]
Encerrando processando FastCGI
Digite no SSH:
kill -9 `ps auxw | grep dispatch | grep $USER | awk '{print $2}'`
Obtendo suporte
Nosso objetivo com essa documentação é permitir o cliente fazer seu deploy sozinho, porém, precisando, na TeHospedo você pode contar com suporte avançado Django.
Os passos de instalação foram desenvolvidos conjuntamente pela TeHospedo e nosso "beta-tester" Django, Rafael Bastiani, que publicou também sua versão em seu blog.
Links externos
- Django - site oficial do Django (em inglês)
- Django Brasil - site da comunidade brasileira de Django (em português)
- Django Wikipedia - en - artigo sobre o Django na Wikipedia (em inglês)
- Django Wikipedia - pt - artigo sobre o Django na Wikipedia (em português)
- Python - site oficial do Python (em inglês)
- Python Wikipedia - en - artigo sobre o Python na Wikipedia (em inglês)
- Python Wikipedia - pt - artigo sobre o Python na Wikipedia (em português)



