LINUX

Cómo agregar módulos en Apache

El servidor web Apache es un programa modular. Podemos agregar y eliminar módulos dinámicamente sin volver a compilar todo el programa. Los módulos de apache se conocen como objetos compartidos dinámicos (DSO). Un ejemplo de módulo de uso común es mod_perl, que se usa para aumentar la velocidad de ejecución del script CGI de Perl al incrustar el intérprete de Perl en el proceso httpd en ejecución. Este tutorial muestra cómo podemos agregar o eliminar módulos de Apache.

Módulos de construcción

Puede crear sus propios módulos de terceros utilizando la herramienta de extensión Apache «apxs» (APache eXtenSion). Suponga que tiene un módulo de terceros llamado «raghu.c» para usar en Apache. Ahora, primero necesitamos compilar este módulo usando:

$ apxs -c raghu.c

La opción -c compilará el módulo y creará un archivo llamado «mod_raghu.so». Una vez que la compilación se haya completado correctamente, ejecute el siguiente comando:

$ apxs -i -a -n raghu mod_raghu.so

La opción -i instala el módulo; -una opción hará cambios automáticamente en el archivo de configuración de Apache para este módulo agregando una línea para cargar este módulo; y la opción -n es solo para establecer explícitamente un nombre de módulo (para la opción -i).

La directiva LoadModule

Los módulos dinámicos se cargan usando la directiva LoadModules en el archivo de configuración de Apache (es decir, /etc/httpd/conf/httpd.conf). La sintaxis de la directiva LoadModules es:

LoadModule nombre_módulo file_for_module

Ya se han agregado varios módulos. Esta es una parte del archivo httpd.conf que muestra los módulos que se cargan por defecto:

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

Estos módulos se agregan por defecto. Ahora suponga que desea agregar el módulo para aumentar la velocidad de ejecución del script de Perl, es decir, mod_perl. Esto se puede hacer agregando esta línea en el archivo de configuración httpd.conf:

LoadModule perl_module modules/mod_perl.so

Después de haber realizado algunos cambios en httpd.conf, debe reiniciar el servicio httpd para asegurarse de que httpd deamon lea el archivo de configuración.

$ service httpd restart

Conclusión

En este tutorial, aprendimos cómo agregar módulos en el servidor web Apache. Espero que haya disfrutado de la lectura y deje su sugerencia en la sección de comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar