tutorial_opensuse_django_v1-1-1

Upload: raaphhaeel

Post on 09-Jul-2015

34 views

Category:

Documents


0 download

TRANSCRIPT

Versin 1..1..1

ESTA OBRA ESTA LICENCIADA BAJO CREATIVE COMMONS

Django en openSUSE by zchronos is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Per License.Based on a work at bishoujolinux.comxa.com.Permissions beyond the scope of this license may be available at http://twitter.com/zchronos

TUTORIAL ELABORADO POR: Daz Sotomayor Segundo Luis Martn. (zchronos) CARTURA POR: Duncan Manuel Gonzlez Osores. (Lobo_Azul)

1

ndice de contenido1. INTRODUCCIN.................................................................................................................4 2. PREPARANDO EL TERRENO............................................................................................4 2.1 Instalacin de paquetes bsicos...................................................................................4 a) Instalacin de Php......................................................................................................4 b) Instalacin de Python..................................................................................................5 3. INSTALACIN DE DJANGO:..............................................................................................5 3.1. Activando la interfaz de administracin........................................................................6 Motor de base de datos..................................................................................................7 Mdulos que Django cargar para nuestro proyecto......................................................7 URLs que reconocer el proyecto..................................................................................8 4. INTEGRACIN CON APACHE.........................................................................................10 4.1. Activando mdulos del apache...................................................................................10 4.2. Configuracin del Apache con VirtualHost.................................................................13 Creando un proyecto con Django + Apache + MySQL + VirtualHosts.........................15 Modificando el settings.py.............................................................................................16 Damos permisos al directorio del proyecto:..................................................................17 Configuracin del Sistema............................................................................................18 4.3. Configuracin del Apache sin VirtualHost..................................................................19 httpd.conf.local..............................................................................................................19 apache2.........................................................................................................................20

2

1. INTRODUCCINHace tiempo que quiero hacer esta entrada pero el tiempo no me lo haba permitido. Bueno, antes que nada debo aclarar que este tutorial est enfocado a usuarios que tienen nociones bsicas sobre servidores web, pero an as intentar hacerlo lo ms entendible posible para que cualquier usuario pueda utilizar Django junto con openSUSE Este tutorial tambin abarca de manera superficial algunos conceptos referentes a la configuracin del Apache as como Virtualhosts, Bueno, comencemos. Qu es Django? Django es un Framework basado en Python, es muy potente y verstil. Est orientado a crear sitios web de manera profesional de forma rpida y limpia, ms informacin en su pgina oficial. Como lo dice su pgina oficial, The Web framework for perfectionists with deadlines, se podra traducir como El framework Web para perfeccionistas con tiempos lmite El ao pasado mi amigo Tolerance000 hizo un tutorial sobre su instalacin desde los repositorios (lo hizo en mi antiguo blog) como pueden ver es muy sencillo, pero para quienes como yo prefieren utilizar la ltima versin disponible y no quieren esperar hasta que la suban a los repos, pues su instalacin mediante consola tambin es muy simple. Recuerda: El smbolo del dlar ($) significa que estoy como usuario normal, en cambio el michi (#) significa que estoy loggeado como root, para loggearse como root basta con abrir una terminal (o konsole) y escribir su (en ubuntu es su -, pero aqu estamos en openSUSE)$ su password: ****************** # "ya estoy logeado como root"

2. PREPARANDO EL TERRENODebemos tener instalados los paquetes bsicos de python, adems del apache, esto es muy sencillo, ya que se encuentran en los repositorios oficiales (OSS, NON-OSS, Update) si no sabes como agregarlos te recomiendo que leas mi anterior post sobre Cosas por hacer despus de instalar openSUSE 11.2 Para simplificarte el trabajo de instalar las librerias te he preparado los paquetes para instalarlos por zypper, solo has un Copiar/Pegar, zypper automticamente resolver las dependencias y detectar los paquetes que faltan instalar.

3

2.1 Instalacin de paquetes bsicosa) Instalacin de PhpSi, es altamente recomendable tener tambin las librerias de php (son pocas, y probablemente ya las tengas instaladas, pero ms vale prevenir)# zypper in apache2-mod_php5 graphviz-php php5 php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-hash php5-iconv php5-json php5-mbstring php5mcrypt php5-mysql php5-odbc php5-openssl php5-pdo php5-sockets php5-sqlite php5tokenizer php5-xmlreader php5-xmlwriter php5-zip

b) Instalacin de Python# zypper in IPython apache2-mod_python dbus-1-python gimp-plugins-python graphviz-python libpython2_6-1_0 libpython2_6-1_0-32bit libstorage-python libxml2-python python python-32bit python-base python-base-32bit python-beaker python-cairo python-cairo-devel python-coherence python-compizconfig pythoncrypto python-cryptopp python-cssutils python-cssutils-doc python-cups pythoncupshelpers python-curses python-dateutil python-devel python-doc python-egenixmx-base python-feedparser python-gdata python-gnome python-gobject2 pythongobject2-devel python-gtk python-gtk-devel python-gtkglext python-httplib2 python-imaging python-imaging-sane python-kde4 python-kdebase4 python-ldap python-logilab-astng python-logilab-common python-louis python-lxml pythonm2crypto python-magic python-mako python-mysql python-newt python-numpy pythonogg python-opengl python-openssl python-orbit python-pam python-pexpect pythonpybluez python-pygame python-pylint python-pysvn python-pyx python-qscintilla python-qt4 python-rrdtool python-satsolver python-scgi python-serial pythonsetuptools python-simplejson python-sip python-tk python-twisted pythonurlgrabber python-vorbis python-webkitgtk python-wxGTK python-xdg python-xml python-yui python-zopeinterface python-zypp rpm-python graphviz-devel

3. INSTALACIN DE DJANGO:- Descargar el archivo tar.gz de su seccin de descargas. Descomprimir el archivo$ tar -xzvf Django-1.1.1.tar.gz

Instalar# python setup.py install

4

Por si no qued claro pondr un ejemplo, he descargado el tar.gz dentro de ~/Descargas/Web/Djangozchronos@yuki:~/Descargas/Web/Django> tar -xzvf Django-1.1.1.tar.gz zchronos@yuki:~/Descargas/Web/Django> cd Django-1.1.1/ zchronos@yuki:~/Descargas/Web/Django> su yuki:/home/zchronos/Descargas/Web/Django/Django-1.1.1 # python setup.py install

(Si, mi laptop se llama yuki, le puse ese nombre porque es blanca, blanca como la nieve) . Listo, con eso ya tenemos Django instalado, para probar que est funcionando correctamente crearemos un proyecto de ejemplo (no es necesario logearse como root):zchronos@yuki:~/Documentos/mis_poyectos> django-admin.py startproject ejemplo zchronos@yuki:~/Documentos/mis_poyectos> cd ejemplo/ zchronos@yuki:~/Documentos/mis_poyectos/ejemplo> python manage.py runserver Validating models... 0 errors found Django version 1.1.1, using settings 'ejemplo.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [30/Jan/2010 10:03:35] "GET / HTTP/1.1" 200 2055

Luego se dirigen a un navegador (yo uso Firefox) y en la barra de direcciones escriben http://127.0.0.1:8000, debera aparecerles algo similar a esto:

5

3.1. Activando la interfaz de administracinComo dije antes, Django cuenta con una interfaz de administracin bastante completa, para activarla debemos primero configurar tres cosas: - Motor de base de datos - Mdulos que Django cargar para nuestro proyecto. - URLs que reconocer el proyecto

Motor de base de datosEn este caso voy a utilizar MySQL, si an no has configurado tu servidor de base de datos, te lo explico a continuacin: Hay que asegurarse de tener instalado mysql:# zypper in mysql

Por default mysql viene sin ninguna contrasea para el usuario de root, por lo que vamos a darle una:# mysqladmin -u root password micontrasea

Ahora creamos una base de datos:$ mysql -u root -pmicontrasea mysql> CREATE DATABASE ejemplo COLLATE=utf8_unicode_ci; Query OK, 1 row affected (0.00 sec)

6

Modificamos el settings.py:DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = 'ejemplo' # Or path to database file if using sqlite3. DATABASE_USER = 'root' # Not used with sqlite3. DATABASE_PASSWORD = 'micontrasea' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

Nota: Para entornos de produccin es aconsejable NUNCA utilizar el usuario de root de MySQL(por temas de seguridad), pero para pruebas est bien.

Mdulos que Django cargar para nuestro proyectoAl final del archivo se encuentra la seccin INSTALLED_APPS aqu le indicaremos que carge el admin, basta con agregar django.contrib.admin, quedara de la siguiente forma:INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', )

URLs que reconocer el proyectoModificamos el archivo urls.pyfrom django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover()urlpatterns = patterns('', # Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)), )

Nos ubicamos en el directorio de nuestro proyecto, sincronizamos la data y corremos el server instantneo.$ cd ~/Documentos/mis_poyectos/ejemplo/ $ python manage.py syncdb

Creating table auth_permission Creating table auth_group

7

Creating Creating Creating Creating Creating Creating

table table table table table table

auth_user auth_message django_content_type django_session django_site django_admin_log

You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'zchronos'): E-mail address: [email protected] Password: Password (again): Superuser created successfully. Installing index for auth.Permission model Installing index for auth.Message model Installing index for admin.LogEntry model$ python manage.py runserver

Abrimos un navegador, ingresamos a: http://127.0.0.1:8000/admin/ deberamos poder visualizar el cuadro de login.

8

Esto es un server temporal, para nada se compara con el gran Apache, pero para que ambos funcionen juntos se requiere una configuracin especial.

4. INTEGRACIN CON APACHEPrimero hay que activar el mdulo de Python en Apache:

4.1. Activando mdulos del apacheEsta parte es muy sencilla de hacer gracias al yast. - En una terminal (konsole) logearse como root Ejecutar el yast (en este caso utilizar el yast a modo texto, por si no estuviesen en un Entorno de Escritorio)# yast

Ir a: Servicios de Red > Servidor HTTP

9

Una vez aqu habilitan el servicio(el puerto por default es el 80), con la tecla TAB se ubican en Mdulos del Servidor. Deben verificar que estn activados el mdulo de Python y tambin el mdulo de Env.

10

11

Nota: Recuerden que tambin pueden ejecutar el Yast en modo grfico pero en ese caso necesitarn un X-Server y un Entorno de Escritorio (yo uso KDE4) Para que apache pueda correr el Django, es necesario habilitar un mdulo llamado mod_python (ya se hizo) y luego debemos indicarle que cosas deseamos que procese con python (*.py) y que cosas no (*.html, *.js, *.css, etc). Y claro, tenemos dos opciones: 1. Utilizar virtualhosts 2. Utilizar el directorio por defecto del apache (srv/www/htdocs), es decir, sin virtualhost Yo recomiendo utilizar virtualhosts, ya que de esta forma podremos tener varios proyectos Django funcionando a la vez sin que ocacione ningn tipo de conflicto entre ellos. Igual abordar ambos puntos.

4.2. Configuracin del Apache con VirtualHostA diferencia de Ubuntu, el manejo de los archivos de configuracin del Apache es un poco distinto (afortunadamente para bien, personalmente me gusta ms el apache de openSUSE que el de Ubuntu) Los archivos de configuracin del apache en openSUSE los veo ms claros y simples de entender. (repito, es una opinin personal) Modificaremos el archivo listen.conf (ubicado en /etc/apache2) para establecer el NameVirtualHost, yo uso el vi, pero pueden utilizar nano o el que gusten.# vi /etc/apache2/listen.conf

# # # #

Listen: Allows you to bind Apache to specific IP addresses and/or ports. See also the directive. When we also provide SSL we have to listen to the standard HTTP port (see above) and to the HTTPS port

Listen 80 Listen 443

# Use name-based virtual hosting # - on a specified address / port:NameVirtualHost *:80

Ahora vamos a definir en donde se almacenarn nuestros VirtualHost.# mkdir /srv/www/vhosts/

Una vez aqu crearemos nuestro directorio de ejemplo:# cd /srv/www/vhosts/ # mkdir dl.meganekko.or.id

12

Habrs notado que tiene el dl._____.or.id, esto es simplemente para diferenciarlo del dominio, puedes cambiarlo a tu gusto, pero de hacerlo tambin debers modificar el archivo de configuracin en el /etc/apache2/vhosts.d/. Nos dirigimos a ese directorio:# cd /etc/apache2/vhosts.d/

Encontraremos un archivo llamado vhost.template, es una plantilla para crear nuestros propios VirtualHost con extension .conf, as que voy a hacer una copia de este archivo para usarlo como base. Lo llamar dl.meganekko.or.id.conf (Todos los archivos de configuracin de VirtualHost deben tener la extesin .conf)# cp vhost.template dl.meganekko.or.id.conf

Es en este archivo en donde le diremos al Apache que directorios procesar con el modpython, asi que vamos a especificar la ruta de nuestro VirtualHost (en este caso /srv/www/vhosts/dl.meganekko.or.id). Aqu pongo como debe quedar: ServerAdmin [email protected] ServerName dl.meganekko.or.id # La ruta del directorio raiz del virtualhost DocumentRoot /srv/www/vhosts/dl.meganekko.or.id # Donde se almacenarn los registros (log) ErrorLog /var/log/apache2/dl.meganekko.or.id-error_log CustomLog /var/log/apache2/dl.meganekko.or.id-access_log combined

# don't loose time with IP address lookups HostnameLookups Off # needed for named virtual hosts UseCanonicalName Off # configures the footer on server-generated documents ServerSignature On # Aqu le decimos que directorio procesar con modpython SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE meganekko.settings PythonInterpreter meganekko PythonOption django.root /meganekko PythonPath "['/srv/www/vhosts/dl.meganekko.or.id/']+ sys.path" PythonDebug On # Aqu le decimos que directorio NO procesar con modpython SetHandler None # El resto lo dejamos tal cual, pero por si las dudas, tambin lo incluyo para que lo tengan de referencia.

13

# ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias directives as to # Alias. # ScriptAlias /cgi-bin/ "/srv/www/vhosts/dl.meganekko.or.id/cgi-bin/" # "/srv/www/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have one, and where ScriptAlias points # AllowOverride None Options +ExecCGI -Includes Order allow,deny Allow from all # UserDir: The name of the directory that is appended onto a user's home # directory if a ~user request is received. # # To disable it, simply remove userdir from the list of modules in APACHE_MODULES # in /etc/sysconfig/apache2. # # Note that the name of the user directory ("public_html") cannot simply be # changed here, since it is a compile time setting. The apache package # would have to be rebuilt. You could work around by deleting # /usr/sbin/suexec, but then all scripts from the directories would be # executed with the UID of the webserver. UserDir public_html # The actual configuration of the directory is in # /etc/apache2/mod_userdir.conf. Include /etc/apache2/mod_userdir.conf # You can, however, change the ~ if you find it awkward, by mapping e.g. # http://www.example.com/users/karl-heinz/ --> /home/karlheinz/public_html/ #AliasMatch ^/users/([a-zA-Z0-9-_.]*)/?(.*) /home/$1/public_html/$2 # # This should be changed to whatever you set DocumentRoot to. # # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI

to.

14

MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs-2.2/mod/core.html#options # for more information. # Options All #Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all

Con esto ya hemos definido nuestro VirtualHost, solo falta probarlo. Para probarlo debemos crear un proyecto.

Creando un proyecto con Django + Apache + MySQL + VirtualHosts1. Nos dirigimos al directorio reservado para el proyecto:# cd /srv/www/vhosts/dl.meganekko.or.id/

2. Creamos un proyecto# django-admin.py startproject meganekko

4. Creando la base de datos$ mysql -u root -pmicontrasea mysql> CREATE DATABASE meganekko COLLATE=utf8_unicode_ci; Query OK, 1 row affected (0.00 sec)

15

Modificando el settings.pyAhora procedemos a hacer las modificaciones correspondientes al settings.py, para eso vamos a activar la interfaz de administracin tal y como expliqu en el punto 2 (Instalacin de Django). Tambin deberemos definir las rutas del media y del templates, nuestro archivo debe quedar as:# Django settings for meganekko project.DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', '[email protected]'), ) MANAGERS = ADMINS DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = 'meganekko' # Or path to database file if using sqlite3. DATABASE_USER = 'root' # Not used with sqlite3. DATABASE_PASSWORD = 'micontrasea' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. TIME_ZONE = 'America/Lima' # Language code for this installation. LANGUAGE_CODE = 'es-ES'SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True # Absolute path to the directory that holds media. MEDIA_ROOT = '/srv/www/vhosts/dl.meganekko.or.id/meganekko/media/uploads/' # URL that handles the media served from MEDIA_ROOT MEDIA_URL = 'uploads' # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a # trailing slash. ADMIN_MEDIA_PREFIX = '/meganekko/media/' # Make this unique, and don't share it with anybody. SECRET_KEY = 'fkdl=+&r4e2pf%#+c4i!q)x@418q97ymt3x35fo1lry5@c1o$1' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = (

16

# )

'django.template.loaders.filesystem.load_template_source', 'django.template.loaders.app_directories.load_template_source', 'django.template.loaders.eggs.load_template_source',

MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', ) ROOT_URLCONF = 'meganekko.urls' TEMPLATE_DIRS = ("/srv/www/vhosts/dl.meganekko.or.id/meganekko/templates/" ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', )

Nota: En entornos de produccin se aconseja que el modo Debug est en False. Ahora bien, ya habiendo definido las rutas del media y templates en nuestro proyecto deben existir, PERO si lo habrn notado, no existen as que deberemos crearlas, nuevamente para esto tenemos dos opciones: a. Usar enlaces simblicos que apunten al directorio del admin del propio Django b. Copiar los respectivos directorios a nuestro proyecto Yo recomiento la segunda opcin, porque ganamos un mayor control de nuestro proyecto. En el caso de openSUSE, la ubicacin en la que se encuentra Django es /usr/local/lib/python2.6/site-packages/django/. As que para copiar los directorios que queremos habra que hacer lo siguiente:

# cp -r /usr/local/lib/python2.6/site-packages/django/contrib/admin/media/ /srv/www/vhosts/dl.meganekko.or.id/meganekko/media/ # cp -r /usr/local/lib/python2.6/site-packages/django/contrib/admin/templates/ /srv/www/vhosts/dl.meganekko.or.id/meganekko/templates/

Damos permisos al directorio del proyecto:Aqu me gustara hacer una pausa, y es que he visto a muchas personas (y muchas guias) en que para todo (incluso para la edicin de su website) utilizan su cuenta de root, esto es una mala prctica, solo debe usarse la cuenta de root para lo que se requiera.

17

Lo que yo recomiendo cuando se trata de desarrollo Web, es SIEMPRE utilizar los datos del apache (En este caso wwwrun:www), as que tambin debemos agregar nuestro usuario al grupo www.

# # # #

cd /srv/www/vhosts/dl.meganekko.or.id/ chown -R wwwrun:www meganekko chmod 775 -R meganekko usermod -G www mi_usuario

Nota: Despues de asignar un grupo a nuestro usuario debemos reiniciar la sesin, para que los cambios surjan efecto. (No es necesario reiniciar el ordenador, solo la sesin) y una vez hecho esto podremos modificar el directorio (y todo lo que ste contenga) sin necesidad de estar logeados como root. Ahora solo queda modificar el urls.py como mencion en el apartado 2 (Instalacin de Django) para activar la interfaz del admin.

Configuracin del SistemaPara que la direccin del VirtualHost sea reconocida por el sistema (sin utilizar un servidor de dominio) es necesario modificar dos archivos adicionales, estos son hosts y resolv.conf ambos ubicados en /etc Primero trataremos con el archivo hosts, solo es necesario agregar la direccin IP del ordenador (claro, primero debes haber configurado tu IP a fija, porque con DHCP cambia constantetmente)# vi /etc/hosts 127.0.0.1 192.168.10.26 192.168.10.26 localhost dl.phpMyAdmin.or.id dl.meganekko.or.id

Habrs notado que tambin tengo el phpMyAdmin, lo tengo como otro VirtualHost, y es que por cada VirtualHost, debes agregarlo a este archivo. En el caso de resolv.conf, este archivo almacena las direcciones de los DNS, hay que agregar (al principio de la lista) la IP que tiene el ordenador.# vi /etc/resolv.conf nameserver 192.168.10.26 nameserver 208.67.222.222 nameserver 208.67.220.220

Reiniciamos los servicios:# service network restart # service apache2 restart

18

Y listo, ya deberamos poder acceder al nuestro proyecto en Django junto con el Apache y utilizando VirtualHosts. http://dl.meganekko.or.id/meganekko/admin/

4.3. Configuracin del Apache sin VirtualHostEl proceso es todava ms sencillo que con VirtualHost, pero vuelvo a repetir que al menos para el caso de Django, esto genera conflictos entre proyectos (creo que es cosa del mod_python), pero si solo deseas probar un solo proyecto entonces debera funcionar sin problemas: Si has comprendido lo de VirtualHost entonces este procedimiento te va a parecer muy fcil ^_^ En este caso la ruta para guardar los proyectos ser: /srv/www/htdocs Ahora, habilitamos mod_python, para esto es necesario interactuar con dos archivos (si solo dos):

httpd.conf.localCreamos un archivo con este nombre (puede ser otro tambin, lo dejo a tu criterio)# vi /etc/apache2/httpd.conf.local

19

SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE meganekko.settings PythonOption django.root /meganekko PythonPath "['/srv/www/htdocs/']+ sys.path" PythonDebug On SetHandler None

apache2Se encuentra ubicado en /etc/sysconfig/# vi /etc/sysconfig/apache2

Busca la seccin:APACHE_CONF_INCLUDE_FILES = ""

y reemplzala con:APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"

Listo, ahora crea un nuevo proyecto en /srv/www/htdocs y accede a la interfaz de administracin mediante http://localhost/miproyectodjango/admin/

Distribucin Utilizada: openSUSE 11.2 Arquitectura: x86_64 (64 bits) Versin de Django utilizada: 1.1.1 Versin de Python utilizada: 2.6.2 Versin de Apache utilizada: 2.2.13

20

Hasta aqu termina el tutorial, espero que les sea de utilidad, cabe mencionar que me tom varias horas desarrollarlo. Quiero agradecer a mi amigo Lobo_Azul por la portada (al inicio de este tutorial). Y claro, agradecer a quienes hicieron sus propios tutoriales sobre cada punto en particular, ya que sin ellos, no me habra sido posible desarrollar este tutorial, aqu pongo los links: http://johannesluderschmidt.de/lang/en-us/django-invalid-command-setenv-inopensuse/291/ http://docs.djangoproject.com/en/1.0/howto/deployment/modpython/ http://fosswire.com/post/2008/5/installing-mod_python-and-django-on-apache/

21