Bom depois de Configurado o Python, como visto no post anterior é hora de colocar o django no ar. Ahh lembrando que o Django não é suportado oficialmente pela dreamhost por isso a instalação é um pouquinho...digamos...xarope ehhehe, mas é possivel sim!
Usei como base para esse post a instalação do Django que está no wiki do Dreamhost, mas tinha dado uns probleminhas e, garimpando aki e ali... cheguei no resultado que vou passar para voces!
Configurando o site no dreamhost
bom pra começar, crie um dominio no painel de controle da Dreamhost, no meu caso criei um subdominio, mas o processo é o mesmo!
Escolha “Manage Domains” e depois “Add New Domain / Sub-Domain”
Escolha oome para seu (sub)dominio, no meu caso coloquei django.mdpetry.net
Escolha “Extra web security” e “Fast CGI Support” e submeta o formulário
Depois crie uma base de dados e uma tabela para seu projeto (não vo ficar explicando isso, mas é bem fácil de fazer! :) )
Configurando o Django
Entre por ssh na sua conta, e no home seu usuário, crie uma pasta django e dentro dela a pasta django_projects, para adicionar os seus projetos.
dentro da pasta ~/django, baixe o source do django, através do svn utilizando o comando:
svn co http://code.djangoproject.com/svn/django/trunk/ django_srcAltere o seu .bash_profile, adicionando as linhas:
export PATH=$PATH:$HOME/django/django_src/django/bin
export PYTHONPATH=$PYTHONPATH:$HOME/django/django_src:$HOME/django/django_projectse ative as mudanças digitando
source ~/.bash_profile agora entre no diretório django_projects e crie um novo projeto:
django-admin.py startproject myprojectComo de costume, ele criou uma série de arquivos, crie as pastas para os templates e para as imagens (geralmente eu as crio dentro da pasta do projeto, mas tanto faz onde elas serão criadas)
no meu caso criei a pasta templates e media.
á no arquivo settings.py e altere as configurações:
de banco de dados:
DATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'django_db' # Or path to database file if using sqlite3.
DATABASE_USER = 'usuario' # Not used with sqlite3.
DATABASE_PASSWORD = 'senha' # Not used with sqlite3.
DATABASE_HOST = 'djangomysql.mdpetry.net' # Set to empty string for localhost. Not used with sqlite3.de internacionalização:
TIME_ZONE = 'America/Sao_Paulo'
LANGUAGE_CODE = 'pt-br'
de templates:
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates".
# Always use forward slashes, even on Windows.
"/home/mdpetry/django/django_projects/myproject/templates"
)mídia:
MEDIA_ROOT = '/home/mdpetry/django/django_projects/myproject/media'
MEDIA_URL = 'http://django.mdpetry.net/media/'
ADMIN_MEDIA_PREFIX = '/admin_media/'insira a seguinte linha no .bash_profile
export DJANGO_SETTINGS_MODULE=myproject.settings e ative novamente o arquivo.após isso, sincronize o BD e crie u musuário para acessar a area de adminsitração com as suas alterações na pasta do projeto, digite:
django-admin.py syncdbinstalando e configurando o FASTCGI e o mod_rewrite
vá até o subdominio criado e vaixe o script python
wget http://svn.saddi.com/py-lib/trunk/fcgi.py e altere as permissões do arquivo chmod 755 fcgi.pycrie o arquivo dispatch.fcgi
#!/home/mdpetry/opt/bin/python
import sys
sys.path += ['/home/mdpetry/django/django_src']
sys.path += ['/home/mdpetry/django/django_projects']
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
WSGIServer(WSGIHandler()).run()para o mod rewrite, crie o arquivo .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(admin_media/.*)$ - [L]
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
reinicia o python para validar as mudanças:
pkill pythonConfigurações finais
altere as os links dos arquivos de midia para o projeto do django:
ln -s $HOME/django/django_src/django/contrib/admin/media $HOME/django.mdpetry.net/admin_mediaadicione no arquivos settings.py do seu projeto a app de adminsitração:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
)e no arquivos urls.py, deconmente a linahs da adminsitração tbem:
(r'^admin/', include('django.contrib.admin.urls')),reinicie o python e na pasta do projeto instale o proejto com o manage.py
pkill python
python manage.py syncdbe... ta pronto! se voce acessar http://django.DEUDOMINIO.com/admin, deverá aparecer a tela de login da interface de adminsitração do django!

7 de Abril de 2008 13:28
Olá Marcos,
Parabens pelo tutorial!
Seguinte, fiz exatamente como vc descreve o passo a passo, mas estou com problema no modulo MySQLdb.
Fiz apenas um teste direto no prompt interativo do Python e mostra esse erro.
>>> import MySQLdb
Traceback (most recent call last):
File "stdin", line 1, in module
File "__init__.py", line 19, in module
File "build/bdist.linux-i686/egg/_mysql.py", line 7, in module
File "build/bdist.linux-i686/egg/_mysql.py", line 4, in __bootstrap__
File "/home/mamude/opt/lib/python2.5/site-packages/setuptools-0.6c5-py2.5.egg/pkg_resources.py", line 800, in resource_filename
File "/home/mamude/opt/lib/python2.5/site-packages/setuptools-0.6c5-py2.5.egg/pkg_resources.py", line 1228, in get_resource_filename
File "/home/mamude/opt/lib/python2.5/site-packages/setuptools-0.6c5-py2.5.egg/pkg_resources.py", line 1246, in _extract_resource
AttributeError: 'module' object has no attribute 'mktime'
>>>
Sabe o que pode ser?
Abraços
Samir
7 de Abril de 2008 13:53
opa!!
cara, reiniciou o python? as variaveis de ambiente estão corretas?
executa um "pkill python" e ve se funciona... se não der certo, tente reinstalar o mysqldb
abraço!
8 de Abril de 2008 10:44
Maizah !! Muito legal o blog !