Python en Apache · 3 min read · Nov 12, 2025
Incrustando Python en Apache2 con mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Incrustando Python en Apache2 con mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Versión 1.0
Autor: Falko Timme
Este tutorial muestra cómo instalar y usar mod_python en varias distribuciones (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) con Apache2. mod_python es un módulo de Apache que incrusta el intérprete de Python dentro del servidor. Te permite escribir aplicaciones web en Python que se ejecutarán muchas veces más rápido que el CGI tradicional y tendrán acceso a características avanzadas como la capacidad de mantener conexiones a bases de datos y otros datos entre solicitudes y acceso a los internos de Apache.
¡No emito ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
He probado esto en sistemas con la dirección IP 192.168.0.100 donde Apache2 ya está instalado.
2 Debian/Ubuntu
Para Debian/Ubuntu, consulta este tutorial: Incrustando Python en Apache2 con mod_python (Debian Etch).
Para Usuarios de ISPConfig
En ese tutorial habilito mod_python en el vhost predeterminado, lo que no tiene efecto en otros vhosts, así que si estás usando ISPConfig (a partir de la versión 2.2.24) puedes usar esa configuración sin ningún cambio y aún habilitar/deshabilitar mod_python en una base por sitio web. ISPConfig utiliza el Publisher Handler - no soporta el PSP Handler.
3 Fedora 9/CentOS 5.2
3.1 Instalando mod_python
Para instalar mod_python, simplemente ejecutamos:
yum install mod_python3.2 Configurando Apache
Ahora debemos configurar Apache para que pueda manejar archivos Python. Hay dos formas de hacerlo. La primera (y predeterminada) es usar el Publisher Handler. Te permite escribir scripts de Python puros con la extensión .py que serán interpretados por Apache. La segunda forma es el PSP Handler. PSP significa Python Server Pages. Te permite incrustar código Python directamente en código HTML, similar a PHP. Los archivos PSP tienen la extensión .psp.
3.2.1 El Publisher Handler
Para habilitar el Publisher Handler, debemos editar la configuración de mod_python que puedes encontrar en /etc/httpd/conf.d/python.conf. Este archivo contiene muchos ejemplos - hacemos una copia de seguridad de él y creamos ese archivo nuevamente desde cero. Estoy usando la raíz del documento predeterminada de Fedora/CentOS /var/www/html aquí en la directiva
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Por favor nota: si usas ISPConfig (a partir de la versión 2.2.24) en el servidor, por favor omite la parte
Reinicia Apache después:
/etc/init.d/httpd restartAhora creamos un pequeño script de prueba en Python (por ejemplo, /var/www/html/test.py) con código Python puro en él…
vi /var/www/html/test.py| def index(req): return "Prueba exitosa"; |
… y llámalo en un navegador (por ejemplo, http://192.168.0.100/test.py). Si todo va bien, debería mostrar Prueba exitosa en tu navegador.
3.2.2 El PSP Handler
Para habilitar el PSP Handler, debemos editar la configuración de mod_python que puedes encontrar en /etc/httpd/conf.d/python.conf. Este archivo contiene muchos ejemplos - hacemos una copia de seguridad de él y creamos ese archivo nuevamente desde cero. Estoy usando la raíz del documento predeterminada de Fedora/CentOS /var/www/html aquí en la directiva
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Por favor nota: si usas ISPConfig (a partir de la versión 2.2.24) en el servidor, por favor omite la parte
Reinicia Apache después:
/etc/init.d/httpd restartAhora creamos un pequeño script de prueba PSP (por ejemplo, /var/www/html/test.psp) con código HTML y Python en él…
vi /var/www/html/test.psp| |<% req.write("¡Hola!") %>
… y llámalo en un navegador (por ejemplo, http://192.168.0.100/test.psp). Si todo va bien, debería mostrar ¡Hola! en tu navegador.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.