Configuración del Servidor Apache
La configuración del servidor se organiza en varias secciones y archivos. A continuación, se presenta un resumen de las secciones y módulos que están activos o disponibles.
ServerName:
ServerName myserver.mydomain.com: Establece el nombre del servidor. En este caso, el servidor se identifica como "myserver.mydomain.com".
Configuración global:
ServerRoot "/etc/apache2"
Define la ubicación principal del directorio del servidor.
Mutex file:${APACHE_LOCK_DIR} default
Se refiere al archivo de bloqueo de serialización de aceptación.
DefaultRuntimeDir ${APACHE_RUN_DIR}
Define el directorio donde se almacenarán los archivos temporales en tiempo de ejecución.
PidFile ${APACHE_PID_FILE}
Establece la ubicación del archivo que registra el número de identificación del proceso del servidor.
Timeout 300
Especifica el tiempo en segundos antes de que se agote el tiempo de espera para recibir y enviar datos.
KeepAlive On
Permite o desactiva conexiones persistentes.
MaxKeepAliveRequests 100
Establece el número máximo de solicitudes permitidas durante una conexión persistente.
KeepAliveTimeout 5
Establece el tiempo en segundos que el servidor espera para la próxima solicitud del mismo cliente en la misma conexión.
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
Define el usuario y el grupo bajo los cuales se ejecutará el servidor Apache.
HostnameLookups Off
Controla si se deben registrar los nombres de los clientes o solo sus direcciones IP.
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Estas secciones establecen las configuraciones de acceso para diferentes directorios en el servidor.
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
Configuración para archivos de configuración adicionales (.htaccess) y para denegar el acceso a archivos que comienzan con ".ht".
• LogFormat: Configuración de formatos de registro para los archivos de registro del servidor.
• Include de módulos y archivos de configuración:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Incluye configuraciones y módulos adicionales desde directorios específicos.
IncludeOptional mods-enabled/*.conf
Es posible que los módulos específicos activos no estén visibles en este archivo de configuración, ya que se incluyen mediante los archivos en el directorio "mods-enabled/". Puedes verificar los módulos activos examinando los archivos en ese directorio.
Módulos estáticos y compartidos:
En el archivo de configuración proporcionado, los módulos de Apache se cargan principalmente a través de las siguientes líneas:
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Las extensiones de archivo ".load" y ".conf" indican diferentes tipos de módulos.
1. Módulos Estáticos (.load):
◦ Los archivos con extensión ".load" indican módulos estáticos. Estos módulos están vinculados directamente al ejecutable de Apache y se cargan durante el arranque del servidor. No se pueden cargar o descargar dinámicamente mientras el servidor está en funcionamiento.
Ejemplo:
IncludeOptional mods-enabled/*.load
• Módulos Compartidos (.conf):
• Los archivos con extensión ".conf" indican módulos compartidos. Estos módulos pueden cargarse y descargarse dinámicamente mientras el servidor está en funcionamiento mediante los comandos a2enmod y a2dismod.
IncludeOptional mods-enabled/*.conf
En el directorio "mods-enabled/", puedes encontrar archivos con extensiones ".load" y ".conf". Los archivos ".load" generalmente contienen la directiva LoadModule, que carga módulos estáticos, mientras que los archivos ".conf" pueden contener configuraciones adicionales para módulos compartidos.
Ejemplo de archivo ".load" (módulo estático):
LoadModule example_module /usr/lib/apache2/modules/mod_example.so
Ejemplo de archivo ".conf" (configuración para módulo compartido):
<IfModule mod_example.c>
# Configuración específica del módulo compartido "mod_example"
</IfModule>
Para determinar específicamente cuáles son estáticos y cuáles son compartidos, necesitarías inspeccionar los archivos en el directorio "mods-enabled/" y revisar su contenido.
Activar módulos:
Para cargar módulos compartidos en Apache, puedes utilizar el comando a2enmod (Apache 2 Enable Module). Aquí te doy un ejemplo de cómo puedes usarlo para cargar un módulo compartido específico:
sudo a2enmod nombre_del_modulo
Sustituye "nombre_del_modulo" por el nombre real del módulo que deseas cargar. Por ejemplo, si quieres cargar el módulo de reescritura (mod_rewrite), el comando sería:
sudo a2enmod rewrite
Después de ejecutar este comando, Apache intentará cargar el módulo y realizará las configuraciones necesarias.
Dependiendo de la configuración de tu sistema, es posible que también necesites reiniciar Apache para que los cambios surtan efecto. Puedes hacer esto con el siguiente comando:
sudo service apache2 restart
Otra opción es utilizar el comando systemctl para reiniciar Apache:
sudo systemctl restart apache2
Recuerda que necesitas privilegios de superusuario (sudo) para ejecutar estos comandos. Además, ten en cuenta que algunos módulos pueden depender de otros, por lo que el comando a2enmod también puede habilitar automáticamente los módulos dependientes.
Si no estás seguro de qué módulos están disponibles para ser habilitados, puedes listar todos los módulos disponibles con el siguiente comando:
ls /etc/apache2/mods-available
Este directorio contiene archivos de configuración para módulos disponibles, y puedes habilitarlos usando a2enmod seguido del nombre del archivo sin la extensión ".conf".
Comprobar cuáles se incluyen en tiempos de ejcución y cuales no:
Para verificar qué módulos están incluidos en tiempo de ejecución en tu servidor Apache, puedes utilizar el comando apachectl junto con la opción -M. Este comando te proporcionará una lista de todos los módulos cargados en el servidor. Puedes ejecutar el siguiente comando en la línea de comandos:
apachectl -M
Este comando mostrará una lista de módulos cargados, y puedes identificar cuáles están activos en tu servidor.
Si deseas obtener información adicional sobre los módulos y sus configuraciones, puedes utilizar grep para filtrar la salida. Por ejemplo, para buscar el módulo "rewrite", puedes usar:
apachectl -M | grep rewrite
Este comando te mostrará si el módulo de reescritura (mod_rewrite) está cargado en tu servidor.
Recuerda que necesitas tener privilegios de superusuario (sudo) para ejecutar el comando apachectl. Además, si modificas la configuración de Apache, es posible que necesites reiniciar el servidor para que los cambios surtan efecto. Puedes hacerlo con:
sudo service apache2 restart
sudo systemctl restart apache2
Estos comandos reiniciarán el servidor Apache y aplicarán cualquier cambio en la configuración, incluidos los módulos que hayas habilitado o deshabilitado.
Pruebas con comandos:
Ver módulos activos en tiempo de ejecución:
apachectl -M
Ver módulos incluidos en tiempo de ejecución:
apache2 -l
Ver módulos disponibles para cargar:
ls /usr/lib/apache2/modules
Activar un módulo:
sudo a2enmod nombre_modulo
Sustituye "nombre_modulo" con el nombre real del módulo que deseas activar.
sudo a2dismod nombre_modulo
Sustituye "nombre_modulo" con el nombre real del módulo que deseas desactivar.
sudo apt-get install nombre_paquete_modulo
Sustituye "nombre_paquete_modulo" con el nombre del paquete que contiene el módulo que deseas instalar.
sudo apt-get remove nombre_paquete_modulo
Sustituye "nombre_paquete_modulo" con el nombre del paquete que contiene el módulo que deseas desinstalar.
• Crear enlaces simbólicos manualmente (opcional):
ln -s /etc/apache2/mods-available/nombre_modulo.load /etc/apache2/mods-enabled/nombre_modulo.load
ln -s /etc/apache2/mods-available/nombre_modulo.conf /etc/apache2/mods-enabled/nombre_modulo.conf
• Eliminar enlaces simbólicos manualmente (opcional):
rm -f /etc/apache2/mods-enabled/nombre_modulo.*
Recuerda que estos comandos pueden variar según tu sistema operativo. Ajusta los comandos según tu distribución Linux y la configuración específica de tu servidor.
Además, ten precaución al activar y desactivar módulos, ya que ciertos cambios pueden afectar la configuración y el rendimiento de tu servidor Apache.