Instalación Django · 4 min read · Dec 04, 2025

Cómo instalar Django en Mandriva 2008.1 (Apache2/mod_python)

Cómo instalar Django en Mandriva 2008.1 (Apache2/mod_python)

Versión 1.0
Autor: Falko Timme

Este tutorial explica cómo instalar Django en un servidor Mandriva 2008.1. Django es un marco web que permite desarrollar aplicaciones web en Python rápidamente con la mayor automatización posible. Lo usaré con Apache2 y mod_python en esta guía.

Este cómo hacer está destinado como una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.

¡Este documento se proporciona sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. No emito ninguna garantía de que esto funcione para ti!

1 Instalar MySQL

Antes de instalar cualquier paquete, debemos habilitar los repositorios main, main_updates, contrib y contrib_updates. Ve a http://easyurpmi.zarb.org/ - debería darte los comandos que necesitas ejecutar para habilitar estos repositorios. En mi caso, ejecuté

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

Django puede usar múltiples backends de base de datos, por ejemplo, PostgreSQL, MySQL, SQLite, etc. Si deseas usar MySQL, puedes instalarlo de la siguiente manera:

urpmi MySQL MySQL-client

Por defecto, la red no está habilitada en el paquete MySQL de Mandriva 2008.1. Podemos cambiar esto comentando la línea skip-networking en /etc/my.cnf:

vi /etc/my.cnf

| [...] # No escuchar en un puerto TCP/IP en absoluto. Esto puede ser una mejora de seguridad, # si todos los procesos que necesitan conectarse a mysqld se ejecutan en el mismo host. # Toda interacción con mysqld debe hacerse a través de sockets Unix o pipes con nombre. # Ten en cuenta que usar esta opción sin habilitar pipes con nombre en Windows # (a través de la opción "enable-named-pipe") hará que mysqld sea inútil! # #skip-networking [...] |

Después, creamos los enlaces de inicio del sistema para MySQL…

chkconfig mysqld on

… y lo iniciamos:

/etc/init.d/mysqld start

Ahora verifica que la red esté habilitada. Ejecuta

netstat -tap | grep mysql

La salida debería verse así:

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

Ejecuta

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

para establecer una contraseña para el usuario root (¡de lo contrario, cualquiera puede acceder a tu base de datos MySQL!).

2 Instalar Apache y mod_python

Si Apache2 y mod_python no están ya instalados en tu sistema, puedes instalarlos de la siguiente manera:

urpmi apache-mod_python

(Esto también instalará Apache2 si no está ya instalado.)

3 Instalar Django

Para instalar Django y los enlaces de Python MySQL, ejecutamos:

urpmi python-django python-mysql

4 Configurar Apache

Antes de configurar Apache, debemos crear un proyecto Django (por ejemplo, llamado mysite) (ver http://www.djangoproject.com/documentation/tutorial01/). Por razones de seguridad, creo ese proyecto fuera de mi raíz de documentos (estoy usando la raíz de documentos predeterminada de Mandriva /var/www/html aquí) (por ejemplo, en /home/mycode):

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

Esto creará el directorio /home/mycode/mysite con algunos archivos de Python en él.

Ahora, con el proyecto mysite creado, podemos configurar Apache. Creo una copia de seguridad del archivo original /etc/httpd/modules.d/16_mod_python.conf y creo uno nuevo de la siguiente manera:

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 configuración es válida para el vhost predeterminado de Mandriva en /var/www/html - si ya has definido otros vhosts donde te gustaría usar Django, por favor coloca la sección en la configuración de vhost apropiada, pero deja la línea LoadModule en /etc/httpd/modules.d/16_mod_python.conf.)

La ruta en la primera línea ( ) se refiere a la URL - lo que significa que esta configuración se utilizará si usas /mysite en la URL (por ejemplo, http://www.example.com/mysite). Puedes cambiar esto a tu gusto. Por favor ajusta los otros valores ( SetEnv DJANGO_SETTINGS_MODULE mysite.settings y PythonPath “[‘/home/mycode’] + sys.path”) al nombre de tu proyecto y la ruta donde se encuentra.

Reinicia Apache después:

/etc/init.d/httpd restart

Ahora puedes acceder a http://www.example.com/mysite en un navegador. Si todo salió bien, deberías ver algo como esto:

Esto significa que Django se ha instalado correctamente, y ahora puedes usarlo para desarrollar tus aplicaciones web en Python (por favor consulta http://www.djangoproject.com/documentation/ para aprender cómo desarrollar aplicaciones web con Django).

5 Conectar a una base de datos MySQL desde un proyecto Django

Si deseas usar una base de datos MySQL en tu proyecto Django, primero debes crear esa base de datos (por ejemplo, mysite) y un usuario de base de datos (por ejemplo, mysiteadmin) para esa base de datos:

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;

Luego abre el archivo settings.py en la carpeta del proyecto (por ejemplo, /home/mycode/mysite) y modifica la configuración de la base de datos, por ejemplo, de la siguiente manera:

vi /home/mycode/mysite/settings.py

| [...] DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' o 'ado_mssql'. DATABASE_NAME = 'mysite' # O ruta al archivo de base de datos si se usa sqlite3. DATABASE_USER = 'mysiteadmin' # No se usa con sqlite3. DATABASE_PASSWORD = 'mysiteadmin_password' # No se usa con sqlite3. DATABASE_HOST = '' # Establecer como cadena vacía para localhost. No se usa con sqlite3. DATABASE_PORT = '' # Establecer como cadena vacía para predeterminado. No se usa con sqlite3. [...] |

6 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.