Django Installation · 4 min read · Dec 04, 2025

Como Instalar Django No Mandriva 2008.1 (Apache2/mod_python)

Como Instalar Django No Mandriva 2008.1 (Apache2/mod_python)

Versão 1.0
Autor: Falko Timme

Este tutorial explica como instalar o Django em um servidor Mandriva 2008.1. Django é um framework web que permite desenvolver aplicações web em Python rapidamente com o máximo de automação possível. Eu o utilizarei com Apache2 e mod_python neste guia.

Este howto é destinado como um guia prático; não cobre os fundamentos teóricos. Eles são tratados em muitos outros documentos na web.

Este documento vem sem garantia de qualquer tipo! Quero dizer que este não é o único modo de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!

1 Instalar MySQL

Antes de instalarmos quaisquer pacotes, devemos habilitar os repositórios main, main_updates, contrib e contrib_updates. Vá para http://easyurpmi.zarb.org/ - isso deve lhe dar os comandos que você precisa executar para habilitar esses repositórios. No meu caso, eu executei

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

O Django pode usar múltiplos backends de banco de dados, por exemplo, PostgreSQL, MySQL, SQLite, etc. Se você quiser usar o MySQL, pode instalá-lo da seguinte forma:

urpmi MySQL MySQL-client

Por padrão, a rede não está habilitada no pacote MySQL do Mandriva 2008.1. Podemos mudar isso comentando a linha skip-networking em /etc/my.cnf:

vi /etc/my.cnf

| [...] # Não ouça em uma porta TCP/IP de forma alguma. Isso pode ser uma melhoria de segurança, # se todos os processos que precisam se conectar ao mysqld rodarem na mesma máquina. # Toda interação com mysqld deve ser feita via sockets Unix ou pipes nomeados. # Note que usar esta opção sem habilitar pipes nomeados no Windows # (via a opção "enable-named-pipe") tornará o mysqld inútil! # #skip-networking [...] |

Depois, criamos os links de inicialização do sistema para o MySQL…

chkconfig mysqld on

… e o iniciamos:

/etc/init.d/mysqld start

Agora verifique se a rede está habilitada. Execute

netstat -tap | grep mysql

A saída deve ser parecida com isto:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                     *:*                     LISTEN      3746/mysqlmanager  
tcp        0      0 *:mysql                         *:*                     LISTEN      3754/mysqld  
[root@server1 ~]#

Execute

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

para definir uma senha para o usuário root (caso contrário, qualquer um pode acessar seu banco de dados MySQL!).

2 Instalar Apache E mod_python

Se o Apache2 e o mod_python não estiverem instalados em seu sistema, você pode instalá-los da seguinte forma:

urpmi apache-mod_python

(Isto também instalará o Apache2 se ele já não estiver instalado.)

3 Instalar Django

Para instalar o Django e os bindings do Python MySQL, executamos:

urpmi python-django python-mysql

4 Configurar Apache

Antes de configurarmos o Apache, devemos criar um projeto Django (por exemplo, chamado mysite) (veja http://www.djangoproject.com/documentation/tutorial01/). Por razões de segurança, eu crio esse projeto fora do meu diretório de documentos (estou usando o diretório de documentos padrão do Mandriva /var/www/html aqui) (por exemplo, em /home/mycode):

mkdir /home/mycode  
cd /home/mycode  
/usr/bin/django-admin.py startproject mysite

Isso criará o diretório /home/mycode/mysite com alguns arquivos Python nele.

Agora, com o projeto mysite criado, podemos configurar o Apache. Eu crio uma cópia de backup do arquivo original /etc/httpd/modules.d/16_mod_python.conf e crio um novo da seguinte forma:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On PythonPath "['/home/mycode'] + sys.path" |

(Esta configuração é válida para o vhost padrão do Mandriva em /var/www/html - se você já definiu outros vhosts onde gostaria de usar o Django, por favor, coloque a seção na configuração do vhost apropriado, mas deixe a linha LoadModule em /etc/httpd/modules.d/16_mod_python.conf.)

O caminho na primeira linha ( ) refere-se à URL - significando que esta configuração será usada se você usar /mysite na URL (por exemplo, http://www.example.com/mysite). Você pode mudar isso conforme sua preferência. Por favor, ajuste os outros valores ( SetEnv DJANGO_SETTINGS_MODULE mysite.settings e PythonPath “[‘/home/mycode’] + sys.path”) para o nome do seu projeto e o caminho onde ele está localizado.

Reinicie o Apache depois:

/etc/init.d/httpd restart

Agora você pode acessar http://www.example.com/mysite em um navegador. Se tudo correr bem, você deve ver algo como isto:

Isso significa que o Django foi instalado com sucesso, e agora você pode usá-lo para desenvolver suas aplicações web em Python (por favor, consulte http://www.djangoproject.com/documentation/ para aprender como desenvolver aplicações web com Django).

5 Conectar A Um Banco De Dados MySQL A Partir De Um Projeto Django

Se você quiser usar um banco de dados MySQL em seu projeto Django, primeiro deve criar esse banco de dados (por exemplo, mysite) e um usuário de banco de dados (por exemplo, mysiteadmin) para esse banco de dados:

mysql -u root -p
CREATE DATABASE mysite;  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost' IDENTIFIED BY 'mysiteadmin_password';  
GRANT ALL ON mysite.* TO 'mysiteadmin'@'localhost.localdomain' IDENTIFIED BY 'mysiteadmin_password';  
FLUSH PRIVILEGES;  
quit;

Em seguida, abra o arquivo settings.py na pasta do projeto (por exemplo, /home/mycode/mysite) e modifique as configurações do banco de dados, por exemplo, da seguinte forma:

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' ou 'ado_mssql'. DATABASE_NAME = 'mysite' # Ou caminho para o arquivo do banco de dados se usar sqlite3. DATABASE_USER = 'mysiteadmin' # Não usado com sqlite3. DATABASE_PASSWORD = 'mysiteadmin_password' # Não usado com sqlite3. DATABASE_HOST = '' # Defina como string vazia para localhost. Não usado com sqlite3. DATABASE_PORT = '' # Defina como string vazia para o padrão. Não usado com sqlite3. [...] |

6 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.