Python en Apache · 3 min read · Nov 12, 2025

Incrustando Python en Apache2 Con mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) - Página 2

4 Mandriva 2008 Spring (2008.1)

4.1 Instalando mod_python

Antes de poder instalar mod_python, debemos habilitar los repositorios main, main_updates, contrib y contrib_updates. Ve a http://easyurpmi.zarb.org/ - debería darte los comandos que necesitas ejecutar para habilitar estos repositorios. En mi caso, ejecuté

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

para habilitarlos.

Para instalar mod_python, simplemente ejecutamos:

urpmi apache-mod_python

4.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. Permite escribir scripts 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. Permite incrustar código Python directamente en código HTML, similar a PHP. Los archivos PSP tienen la extensión .psp.

4.2.1 El Publisher Handler

Para habilitar el Publisher Handler, debemos editar la configuración de mod_python que puedes encontrar en /etc/httpd/modules.d/16_mod_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 Mandriva /var/www/html aquí en la directiva - ajusta esto a tus necesidades. Las líneas importantes son AddHandler mod_python .py y PythonHandler mod_python.publisher:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On |

Por favor nota: si usas ISPConfig (desde la versión 2.2.24 en adelante) en el servidor, por favor omite la parte en el archivo anterior ya que eso habilitaría mod_python globalmente para el directorio en cuestión. En ISPConfig puedes habilitar mod_python por sitio web, lo que te da más control sobre si un sitio web puede usar mod_python o no.

Reinicia Apache después:

/etc/init.d/httpd restart

Ahora 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 "Test successful"; |

… y lo llamamos en un navegador (por ejemplo, http://192.168.0.100/test.py). Si todo va bien, debería mostrar Test successful en tu navegador.

4.2.2 El PSP Handler

Para habilitar el PSP Handler, debemos editar la configuración de mod_python que puedes encontrar en /etc/httpd/modules.d/16_mod_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 Mandriva /var/www/html aquí en la directiva - ajusta esto a tus necesidades. Las líneas importantes son AddHandler mod_python .py y PythonHandler mod_python.psp:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On |

Por favor nota: si usas ISPConfig (desde la versión 2.2.24 en adelante) en el servidor, por favor omite la parte en el archivo anterior ya que eso habilitaría mod_python globalmente para el directorio en cuestión. En ISPConfig puedes habilitar mod_python por sitio web, lo que te da más control sobre si un sitio web puede usar mod_python o no. También ten en cuenta que ISPConfig no soporta el PSP Handler - utiliza el Publisher Handler.

Reinicia Apache después:

/etc/init.d/httpd restart

Ahora 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("Hello!") %>

|

… y lo llamamos en un navegador (por ejemplo, http://192.168.0.100/test.psp). Si todo va bien, debería mostrar Hello! en tu navegador.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.