Introducción
En este artículo enseñaremos cómo habilitar el lenguaje de programación Python, en el servidor Apache.
Las configuraciones presentadas en este artículo se han probado en las combinaciones Debian 7 + Apache2 Versión 2.2.22-13+deb7u6 y en Debian 8 + Apache2 Versión 2.4.10-10+deb8u5
En Apache, la funcionalidad necesaria para interpretar scripts Python la provee el módulo mod_python.
mod_python es un módulo que embebe el intérprete Python en el servidor Web Apache. Permite escribir aplicaciones Web en Python, las cuales se ejecuten más rápido que el tradicional CGI y tienen acceso a características tales como la capacidad de conectar con bases de datos y características internas de Apache.
Instalación del módulo mod_python
Para instalar mod_python» en Apache en un servidor Debian o distribución basada en Debian, es necesario instalar el paquete libapache2-mod-python:
$ sudo apt-get install libapache2-mod-python |
Una vez instalado el paquete, es posible verificar en Apache que el módulo mod_python se encuentra cargado utilizando la herramienta apache2ctl
$ sudo apache2ctl -t -D DUMP_MODULES | grep -i python Syntax OK python_module (shared) |
Podemos comprobar que existe el link simbólico en el directorio /etc/apache2/mods-enabled ejecutando el siguiente comando:
$ sudo ls -l /etc/apache2/mods-enabled/ | grep python lrwxrwxrwx 1 root root 29 nov 15 09:50 python.load -> ../mods-available/python.load |
Configuración del VirtualHost en Apache
Después de instalar el módulo mod_python es necesario configurar un sitio Web (VirtualHost) para que sea capaz de utilizar Python. Para lo cual, habrá que editar el archivo de configuración del sitio, por ejemplo /etc/apache2/sites-enabled/default.conf y agregar las directivas AddHandler, PythonHandler y PythonDebug tal como se indica a continuación:
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.midominio.com ServerAdmin webmaster@mydominio.com DocumentRoot /var/www/midominio <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/midominio> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all #Habilitar python AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On </Directory> [...] |
También podemos utilizar este método, para la parte segura de nuestro servidor, haciendo lo mismo en el archivo /etc/apache2/sites-enabled/default-ssl.conf o podría llamarse /etc/apache2/sites-enabled/default-ssl.
Para que surtan efecto los cambios realizados, reiniciamos el servidor Apache:
$ sudo service apache2 restart |
o también:
$ sudo /etc/init.d/apache2 restart |
o si nuestro sistema utiliza systemd, ejecutaremos el siguiente comando:
$ sudo systemctl restart apache2 |
Crear un script Python para comprobar que todo funciona correctamente
En un archivo de texto plano al que llamaremos, por ejemplo, test.py añadiremos las siguientes líneas:
def index(req): output = "Hola Mundo" return output |
Guardamos el archivo, en el raiz de nuestro sitio web, por ejemplo en /var/www/midominio/test.py, y una vez guardado, accedemos con nuestro navegador a la URL http://www.midominio.com/test.py.
Si todo ha ido bien, nos presentará una ventana similar a la siguiente:
Configuración de privacidad y de cookies.
Deja una respuesta