Acceder al sistema de administración

Configurar VHOST Django en ZPanel

Configurar VHOST Django en ZPanel

Algo muy importante para poder correr nuestras aplicaciones Django en Producción, es saber configurar el VirtualHost de nuestro VPS correctamente.
 
Con Apache es relativamente sencillo, además de poder encontrar mucha documentación sobre cómo hacerlo por la Red.
 
Pero, ¿cuándo tenemos que hacerlo bajo un panel de control como ZPanel? Pues sigue paso a paso este artículo, donde explico detalladamente como llevar a cabo esta tarea.
 
Zpanel es un panel de control enfocado al Web hosting, desde el cual se puede administrar nuestro VPS y este suele estar una capa por encima de nuestro servidor, en mi caso Apache2.
 
Por lo tanto, a la hora de querer gestionar nuestros VirtualHost lo debemos de realizar desde el Zpanel y no desde el Apache2.
 
En mi caso particular gestiono varios Sites en PHP dentro del mismo VPS, pero a la hora de querer poner en producción este Blog que está desarrollado en Python, me encontré con una interminable sucesión de inconvenientes, como por ejemplo, la necesidad de instalar mod_wsgi, mod_python, un conector MySQL, la declaración del WSGIPythonPath, la creación del VirtualHost, etc.
 
El problema se inició porque intenté crear el VirtualHost en el Apache2 en vez de hacerlo en el Zpanel y esto me derivó a profundizar en el estudio de cómo implementar correctamente un VirtualHost en Apache2 para que me interpretase código Python.
 
Tras darle muchas y muchas vueltas al mismo tema y no ver más que fracasos, empecé a indagar sobre el funcionamiento de Zpanel y… parecía que cogiendo el problema por esta línea al fin conseguiría hacer funcionar el nuevo Site desarrollado en Python.
 
Pude comprobar que dentro de Zpanel estaban declarados todos los VirtualHosts que apuntaban a mis dominios,  (configuración inicial que me entregó el proveedor en donde tengo contratado el VPS). He de comentar que en un principio el proveedor no me daba soporte para Python por lo que me hice con el control total del VPS para continuar con mis proyectos.
 
Y ahí estaba el VirtualHost ‘ruben-arranz.es’ configurado perfectamente para servir contenido PHP pero, ¿ahora cómo narices configuro esto para que además de servir PHP también pueda servir Python?
 
Bien, para esto se ha de ir al menú principal del Zpanel, seleccionar AdministradorAdministrar Módulos:
 
Blog - Rubén Arranz || Django - ZPanel- Vhost
 

Dentro del Administrador de Módulos tenemos que dirigirnos a Configuración del Apache:
 
Blog - Rubén Arranz || Django - ZPanel- Vhost
 
Y buscar la sección Override a Virtual Host Setting:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
En este punto seleccionamos el dominio que deseemos y le damos a Select Vhost.
 
Después buscamos la entrada Custom Entry y en su Area de Texto configuramos nuestro VirtualHost:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Es importante resaltar en este punto, que mi intención no era la eliminación del VirtualHost existente, sino combinarlo para poder servir también el proyecto Python. Y es aquí donde me volví a encontrar con algunas dificultades.
 
Claro, yo suponía que añadiendo el WSGIScriptAlias, el Files wsgi.py, las declaraciones de las rutas static, media, admin/media/ y el  DocumentRoot tendría suficiente. Pero volví a fracasar ya que a la hora de intentar acceder al dominio vía Web, este me lanzaba el típico ERROR 500 :( Ahora no podía acceder ni al PHP…
 
Y ¿ahora qué?
 
Vaya! Como se me ocurre declarar 2 DocumentRoot en el mismo VirtualHost???? Un error que el servidor no me perdonó, jeje.
 
Entonces me zambullí en los foros yankis de soporte del Zpanel y di con una posible solución, cerrar el VirtualHost y crear uno nuevo. Las 2 acciones realizadas desde el Custom Entry del Virtual Host Override, quedando el código de la siguiente manera:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Ahora grabamos los cambios con Save Vhost y nos dirigimos de nuevo al menú principal – Administrador,  pero en esta ocasión pulsamos sobre Configuración Zpanel:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Buscamos en la sección Zpanel Daemon la opción de Ejecutar Daemon Ahora y pulsamos el botón de Ir:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel 
 
Con esta opción se reconfigurará nuestro VirtualHost y además no tendremos que reiniciar Apache ya que el Daemon lo hace automáticamente.
 
Bien, con esto ya lo tendríamos resuelto pero ahora se ha de configurar el Apache para que conozca el Path de nuestro WSGIPython.
 
Esto lo realizamos desde la consola de comandos, dirigiéndonos a /etc/apache2/ y modificando el fichero httpd.conf:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Grabamos el fichero y reiniciamos el servicio de Apache para que coja la nueva configuración:
 
Blog - Rubén Arranz || Django || Configurar Vhost django en ZPanel
 
Y con estos pasos conseguí de una vez por todas realizar mi primer Deployment en Python! :)
 
Además he podido alojar en el mismo dominio un proyecto en WordPress (solo a modo de pruebas) accediendo así a dos proyectos completamente diferentes.
 
Esto último lo he conseguido jugando con las URL de acceso, por ejemplo, si accedo a www.ruben-arranz.es el server me dirige al proyecto en PHP y si accedo a www.ruben-arranz.es/blog el servidor me dirige al proyecto Python.
 
La verdad es que no creo que esto sea una buena idea ya que se podrían generar conflictos con las urls y solo lo hice porque me podía la curiosidad de saber si esto sería posible.
 


Creado por el día 3 de Noviembre de 2013


Volver




blog comments powered by Disqus

Propiedades de la entrada

Título: Configurar VHOST Django en ZPanel

Categoria: Django

Etiquetas: Apache Configuración server Django VirtualHost

Comentarios: Ver Comentarios

Comparte esta entrada: