Windows, Apache, MySQL y Python: el otro WAMP

6 11 2007

Desde que empece a escuchar acerca del lenguaje de programación Python, me llamó la atención por varios motivos. El principal consistía en que el motor de búsqueda Google utiliza principalmente esta tecnología en su desarrollo de aplicaciones. Por lo cual pense que debía existir algún motivo por el cual, Python fuese especial.

Python es en si un lenguaje multiproposito. Es utilizado mucho en aplicaciones con un grado de complejidad bastante grande. Tiene mucho soporte para manejo de recursos a bajo nivel. También puede interactuar con el sistema operativo y existe soporte para muchos sistemas operativos.

Pues bien, entre mis investigaciones y pruebas he encontrado el método de instalar Python en un Servidor Apache. En este artículo describire el proceso para el sistema operativo Windows:

Paso 1: Instalar Apache para Windows. El proceso no es complicado. Lo fundamental es instalarlo desde un paquete de instalación. Como en todos los artículos que he redactado, creo que la mejor opción es instalar Apache en el directorio: C:\apache por que permite un mejor acceso. Instalaremos la versión 2.0.x de Apache. La nueva version 2.2.x ha resultado trabajar de manera distinta.

Paso 2: Descargar el paquete de instalación de Python para Windows. La web del proyecto es http://www.python.org. La instalación es bastante sencilla si elegimos el proceso de instalación mediante el paquete automático. Lo recomendable: instalar en C:\apache\python.

En si, no existe un modulo nativo de Apache para conectar el servidor con Python. El conector se podría hacer mediante un intérprete CGI, pero suele ser más lento a la hora de procesar los scripts. Sin embargo, existe un proyecto llamado mod_python que desarrolla un módulo de conexión. Podemos bajarlo desde la página del proyecto Apache. Debemos de tener cuidado con la versión que descargamos del módulo. El archivo que descarguemos, indica la versión de Python a la que da soporte. En nuestro caso, como instalaremos Pytnon version 3.58, descargaremos el archivo mod_python-3.3.1.win32-py2.5-Apache2.0.exe.

Durante el proceso de instalación, el programa nos pedirá indicar la ruta en que hemos instalado los archivos de Python (en mi caso: c:\apache\python). Mostrará un mensaje de confirmación y nuevamente nos pedirá que especifiquemos la ruta, esta vez de Apache (c:\apache\ por ejemplo) y las instrucciones de instalación del linker para Apache.

# Agregamos el módulo en el archivo httpd.conf
LoadModule python_module modules/mod_python.so

Al terminar, reiniciamos Apache. El instalador de Mod_Python, nos indicará que nos dirijamos a la página de especificación y de testeo. A continuación hago una traducción libre de parte del documento:

# Creamos un archivo .htaccess desde el directorio en el que
# queremos que sean interpretadas la páginas con Python

# Agregamos al .htaccess:
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On

La directiva AddHandler le asigna a Mod_Python la función de interpretar los archivos con extensión ( .py ). No soy experto en Python, recién estoy empezando a incursionar en el lenguaje. La directiva PythonHandler mptest indica el lanzador de Python y PythonDebug On enciende el interprete.

# Ahora creamos el archivo mptest.py y agregamos
from mod_python import apache

def handler(req):
    req.content_type = "text/plain"
    req.write("Hello World!")
    return apache.OK

Como podemos apreciar, según el documento, y para propositos de prueba el nombre del script es el mismo que el indicado en el .htaccess como lanzador. Otra cosa interesente. El código en Python es sensible a indendación.

Artículos Relacionados: