Python

Cómo habilitar Python scripting en Apache

 
 

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:
Test Python
 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.