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 que se ejecuten más rápido que el tradicional CGI y tengan acceso a características avanzadas tales como la capacidad de retener conexiones a bases de datos, datos entre accesos y características internas de Apache.
Para instalar mod_python
en Apache en un servidor Debian o Ubuntu Server, es necesario instalar el paquete "libapache2-mod-python" (y "python-mysqldb" si se van a utilizar bases de datos MySQL).
# apt-get install libapache2-mod-python
Una vez instalado es posible verificar en Apache que el módulo "mod_python" se encuentra cargado utilizando la herramienta apache2ctl
:
# apache2ctl -t -D DUMP_MODULES | grep -i python Syntax OK python_module (shared)
Se observa que existe el link simbólico en el directorio mods-enabled
:
# ls -l /etc/apache2/mods-enabled/ | grep python lrwxrwxrwx 1 root root 29 nov 15 09:50 python.load -> ../mods-available/python.load
Luego de instalar el módulo mod_python
es necesario configurar un sitio Web (VirtualHost) para que sea capaz de utilizar Python. Editar el archivo de configuración del sitio (por ejemplo /etc/apache2/sites-enabled/mi_sitio
) y agregar las directivas LoadModule
, AddHandler
, PythonHandler
y PythonDebug
tal como se observa a continuación:
LoadModule python_module modules/mod_python.so %lt;Directory "/var/www/mi_sitio"> AddHandler mod_python .py PythonHandler mi_aplicacion PythonDebug On [...]
La directiva PythonHandler
apunta al módulo Python base dentro del directorio del sitio Web (en este ejemplo "/var/www/mi_sitio/mi_aplicacion.py"):
# ls /var/www/mi_sitio/mi_aplicacion.py mi_aplicacion.py
Finalmente, reiniciar el servidor Apache:
# /etc/init.d/apache2 restart
Para mayor información sobre mod_python
remitirse a la documentación oficial:
Mod_python v3.5.0-3.5.0 documentation
Mod_python Manual, Gregory Trubetskoy - Release 3.3.1 (January 29, 2007)