El objetivo es mantener la instalación actual del sitio Joomla, http:// localhost:80/ , y agregar una instalación de Django en el puerto 8000.
Los siguientes pasos son triviales, pero los dejo asentados para cualquiera que le pueda interesar.
Paso 1 - Instalar los paquetes
Instalar los paquetes de django, python para apache2 y los paquetes para acceder a mysql:
sudo apt get install libapache2-mod-python python-django python-mysqldb
Paso 2 - La configuración de Apache2
Suponiendo que el sitio de django se encuentra en la carpeta /home/usuario/django/sitio, debemos agregar el siguiente archivo:
# /etc/apache2/sites-available/django
MaxRequestsPerChild 1
<VirtualHost *:8000>
DocumentRoot /home/guillermo/django/cruzandoelsuquiaDJ/
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE cruzandoelsuquiaDJ.settings
PythonDebug On
PythonPath "['/home/guillermo/django'] + sys.path"
</Location>
<Location "/media">
SetHandler None
</Location>
<Location "/feincms_media">
SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png)$">
SetHandler None
</LocationMatch>
</VirtualHost>
Luego, para activar este host virtual, es necesario agregar el sitio a la lista de sitios activados:MaxRequestsPerChild 1
<VirtualHost *:8000>
DocumentRoot /home/guillermo/django/cruzandoelsuquiaDJ/
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE cruzandoelsuquiaDJ.settings
PythonDebug On
PythonPath "['/home/guillermo/django'] + sys.path"
</Location>
<Location "/media">
SetHandler None
</Location>
<Location "/feincms_media">
SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png)$">
SetHandler None
</LocationMatch>
</VirtualHost>
cd /etc/apache2/sites-enabled/
ln -s ../sites-available/django 001-django
En mi caso particular, tengo el sitio predeterminado 000-default, que es mi instalación de Joomla en el pueto standard 80.
Paso 3 - Activar los puertos
Agregar lo marcado en rojo en el archivo /etc/apache2/ports.conf
# /etc/apache2/ports.conf
...
NameVirtualHost *:80
NameVirtualHost *:8000
...
NameVirtualHost *:80
Listen 80
NameVirtualHost *:8000
Listen 8000
...Paso 4 - Reiniciar Apache
cd /etc/init.d
sudo ./apache2 restart
Paso 5 - Servir los media del admin de django a travez de Apache
Hay varias opciones, una es linkear la carpeta "media" de la instalacion de django, para tener los css e imagenes del backend:
cd /home/usuario/sitio
ln -s /var/lib/python-support/python2.6/django/contrib/admin/media media
Esto es una solución provisoria, la solución final es usar la carpeta admin_media, previamente configurada en settings.py.
Espero que esto le sirva a alguien. A mi me hubiera servido.
interesante, y que hay haciendolo con el mod_wsgi ?, tengo entendido que el rendimiento con WSGI es mayor.
ResponderEliminarSi, lei por ahi que es mas eficiente.
ResponderEliminarPero esta instalación es en un server de desarrollo. Cuando haga la instalación final tendré en cuenta la eficiencia.
Cuando haga la instalación en el server, voy a escribir otro artículo.
Pero si no puedo reiniciar mi servidor apache?, por que es un servidor compartido :/
ResponderEliminar