Cómo ver que módulos tenemos instalados y funcionando en Apache

Muchas veces instalamos módulos de Apache sin activarlos, incluso muchos ya vienen por defecto instalados pero sin configurar de ninguna manera, un ejemplo es el caso del mod_deflate en Apache 2.x o mod_gzip en versiones más viejas de Apache como la 1.3 por ejemplo.

Anteriormente vimos como hacer un modulo de apache que mediante un header en la petición ejecutase comandos en el servidor con el usuario root. ¿Como podría ser detectado un modulo como este? Hoy vamos a ver como listar los módulos de apache tanto si están compilados estáticamente con el servidor web cómo los que se cargan al arrancarlo.

Primero de todo deberemos localizar el binario httpd que se usa:

# ps -fea | grep [h]ttpd
root 18570 17082 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf
apache 18578 18570 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf
apache 18579 18570 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf
apache 18580 18570 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf
apache 18581 18570 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf
apache 18582 18570 0 Dec11 ? 00:00:00 /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf

A continuación lo deberemos ejecutar con la opción -l para ver los modulos compilados estáticamente con el servidor web:

# /usr/local/apache22/bin/httpd -l
Compiled in modules:
core.c
mod_include.c
mod_filter.c
mod_deflate.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c

En este listado no se parsea el fichero de configuración, por lo que no se muestran los módulos que se cargan al arrancar el servidor web. Para verlos podemos buscar en el fichero de configuración, o bien, dejar que sea el propio httpd que nos lo indique el la opción -M:

# /usr/local/apache22/bin/httpd -M
Loaded Modules:
core_module (static)
include_module (static)
filter_module (static)
deflate_module (static)
log_config_module (static)
env_module (static)
setenvif_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
asis_module (static)
cgi_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
rewrite_module (static)
so_module (static)
mod_baltar (shared)
Syntax OK

Mediante “shared” se diferencia cuales son los cargados dinámicamente de los que están compilados estáticamente (static):

# /usr/local/apache22/bin/httpd -M | grep shared
Syntax OK
mod_baltar (shared)

Comentarios

Entradas populares de este blog

MikroTik QoS Script generator

Comandos Solaris

Comando para eliminar saltos de linea en fichero o archivo desde consola Linux