Dado que esta es una de las tecnologías de servidor más utilizadas en el mundo, es probable que también esté utilizando un servidor Linux. En esencia, Apache es un servidor HTTP puro que presenta sitios web a pedido. Dependiendo de para qué esté utilizando su servidor web, es posible que tenga requisitos que estén ligeramente fuera de la oferta estándar de Apache. Afortunadamente, Linux ofrece módulos.

Los módulos ofrecen capacidad de expansión para Apache, le brindan nuevas capacidades y funcionalidades y amplían sus capacidades. Apache viene de serie con una lista de selección de módulos barebones. Algunos de estos incluyen el núcleo, las funciones del servidor HTTP Apache; Prefork, que implementa un servidor web de pre-bifurcación sin hilo; y Worker, un módulo multiproceso que implementa un servidor web híbrido.

Los módulos se pueden compilar en el binario HTTPD cuando se crea el servidor, pero se pueden incluir y cargar módulos adicionales, separados del binario HTTPD, según sea necesario. Estos módulos adicionales de Apache se conocen como Objetos liberados dinámicamente (DSO). Para utilizar DSO, debe asegurarse de que su servidor tenga la Módulo de objetos compartidos o Módulo SO (mod_so).

El módulo SO es responsable de cargar el código ejecutable y los módulos en el servidor al inicio. Este módulo debe ser parte del binario HTTPD y, por razones obvias, no se puede agregar después de la primera compilación del servidor. Si no estaba incluido y desea capacidad de expansión modular, deberá reconstruir su servidor y asegurarse de que mod_so está incluido está incluido.

Si quieres comprobar eso mod_so Es parte del binario HTTPD, ejecute el siguiente comando:

$ apachectl -M
  • Este comando muestra una lista de los módulos contenidos en el servidor HTTPD en sus respectivos sistemas.
  • El módulo mod_so debe formar parte de la lista mostrada.

Por lo general, los DSO se definen mediante una directiva en el. cargado HTTPD.conf Archivo. Para agregar módulos adicionales a Apache, debe modificar el archivo HTTPD.conf. Esto requiere dos cosas: acceso de root al servidor Apache y experiencia o conocimiento para modificar archivos de configuración. Si no tiene acceso de root, o si no tiene suficiente experiencia o conocimiento en la configuración de archivos de configuración, le recomendamos encarecidamente que esta tarea la realice un administrador del sistema o un equipo de soporte técnico.

Agregar un módulo

Integre el módulo en su servidor y anote su ubicación. Para este ejercicio usaremos uno ficticio Foo Módulo (mod_foo.so). Estará en el Módulos / en la raíz del servidor (módulos / mod_foo.so). Para integrar el módulo, utilizamos el Módulo de carga Directiva. La Módulo de carga La directiva es una función del módulo SO (de ahí su necesidad).

Como se mencionó anteriormente, agregar un módulo requiere modificar el archivo HTTPD.conf. Abra el archivo de configuración de Apache y agregue la siguiente línea:

LoadModule foo modules/mod_foo.so

Esta directiva vincula el archivo de objeto (mod_foo.so) o el nombre del archivo de la biblioteca (modules / mod_foo.so) y agrega la estructura del módulo llamada foo a la lista de módulos activos.

Nota: Si desea desactivar o eliminar un módulo, simplemente abra HTTPD.conf y comente o elimine el Módulo de carga Entrada para este módulo en particular.

Después de agregar o eliminar un módulo, el servidor Apache debe reiniciarse o recargarse.

Detener, iniciar y reiniciar el servidor

Reinicie o recargue el servidor

El siguiente método reinicia el servidor web Apache.

# systemctl restart httpd.service

Detenga el servidor

El siguiente método detiene el servidor web Apache.

# systemctl stop httpd.service

Inicie el servidor

El siguiente método inicia el servidor web Apache.

# systemctl start httpd.service

Si cambió su archivo HTTPD.conf correctamente y reinició su servidor, el módulo debería cargarse correctamente. Si aún tiene problemas, es posible que deba considerar obtener su módulo o compilarlo usted mismo a partir de un código fuente confiable.

Compilar un módulo a partir del código fuente

Se pueden compilar e instalar nuevos módulos con la herramienta de extensión Apache (apxs). Si la herramienta apxs no está presente, se puede instalar instalando el paquete httpd-development, que contiene los archivos de inclusión, los archivos de encabezado y la aplicación de extensión Apache.

Ejecute el siguiente comando para descargar e instalar el paquete httpd-development:

# yum install httpd-devel

Y entonces:

# yum groupinstall 'Development tools'

APXS (Apache Extension Tool) se utiliza para crear e instalar módulos de extensión para el servidor Apache HTTPD. Crea archivos DSO a partir de uno o más objetos o archivos fuente. Estos archivos fuente pueden ser cualquier archivo fuente C (.c), un archivo objeto (.o) o un archivo de biblioteca (.a).

Por ejemplo, cuando tenemos el código fuente del módulo foo (foo.c), lo compilamos en un objeto compartido adecuado para cargar como módulo Apache.

Navegue hasta la carpeta que contiene el código fuente y ejecute las siguientes secuencias de comandos:

# apxs -i -a -c mod_foo.c

Este comando compila los archivos de objeto del archivo fuente C, los vincula a un archivo de objeto compartido dinámico, los carga en el directorio del módulo Apache y agrega automáticamente el Cerrar Línea en el archivo de configuración principal.

Después de que su módulo haya sido compilado e instalado, reinicie su servidor como se describe arriba. Después de realizar una copia de seguridad del servidor, ejecute el siguiente comando para asegurarse de que el módulo esté habilitado:

# apachectl -M | grep foo

Si devuelve el módulo como activo, confirma una instalación exitosa.