Compilar módulo de Apache mod_python para Centos 7

Published:

Dado que Check_mk hasta ahora continua usando el viejo módulo de python para Apache mod_python que está ya discontinuado, hay que hacer el trabajo manualmente, esta publicación corresponde a la instalación de Nagios e integración con dicho módulo.

1- Dependencias necesarias

# yum install httpd httpd-devel python-devel
# yum groupinstall "Development Tools"

2- Descarga

Descargamos en: http://dist.modpython.org/dist/

Pero lo hacemos directamente con wget, descomprimimos e instalamos:

# wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz

# tar zxfv mod_python-3.5.0.tg
# cd mod_python-3.5.0
# ./configure -with-apxs=/usr/bin/apxs

3- Modificación necesaria

Tuve que modificar una línea del archivo dist/version.sh. Esta en la carpeta de instalación antes de hacer make install, comentamos las 2 últimas líneas y agregamos una al final como ven la parte que esta en negrita.

#!/bin/sh
MPV_PATH="`dirname $0`/../src/include/mp_version.h"
MAJ=`awk '/MP_VERSION_MAJOR/ {print $3}' $MPV_PATH`
MIN=`awk '/MP_VERSION_MINOR/ {print $3}' $MPV_PATH`
PCH=`awk '/MP_VERSION_PATCH/ {print $3}' $MPV_PATH`
#GIT=`git describe --always`
#echo $MAJ.$MIN.$PCH-$GIT
echo $MAJ.$MIN.$PCH-

Ahora estamos listos para la instalación

# make
# make install

4- Prueba de módulo

Vamos a realizar un test usando nuestra estructura por defecto de Apache. Creamos una carpeta y le damos permisos

# mkdir /var/www/html/test
# chown apache.apache /var/www/test

Creamos un nuevo archivo de configuración

 # nano /etc/httpd/conf.d/test_mod_python.conf
# FILE /etc/httpd/conf.d/test_mod_python.conf
<Directory /var/www/html/test> 
 AddHandler mod_python .py
 PythonHandler mptest 
 PythonDebug On 
</Directory>

Creamos un archivo en dicho directorio 

# nano /var/www/html/test/mptest.py
# FILE /var/www/html/test/mptest.py
from mod_python import apache
def handler(req):
 req.content_type = 'text/plain'
 req.write("Hello World!")
 return apache.OK

Activamos en Apache en módulo de python. Creamos un archivo

# nano /etc/httpd/conf.modules.d/01-mod_python.conf
# FILE /etc/httpd/conf.modules.d/01-mod_python.conf
LoadModule python_module modules/mod_python.so

Reiniciamos Apache.

# systemctl restart httpd.service

Probamos acceder a la URL para obtener un “Hello Word!” http://server/test/mptest.py

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles