🌐 Apache Web Server en Debian

🚀 Instalación, Configuración y Administración de un Servidor Web

💡 Apache HTTP Server es uno de los servidores web más utilizados del mundo. Permite publicar sitios web, aplicaciones y servicios en una red local o en Internet de forma segura, eficiente y escalable.

Apache es ampliamente utilizado en entornos académicos, empresariales y de desarrollo debido a su estabilidad, flexibilidad y compatibilidad con múltiples tecnologías como PHP, Python, Perl y bases de datos MySQL/MariaDB.


🎯 Objetivo de la práctica

Al finalizar esta actividad el estudiante será capaz de:

✅ Instalar Apache en Debian.

✅ Comprender la estructura de directorios de Apache.

✅ Verificar el funcionamiento del servidor web.

✅ Administrar el servicio Apache.

✅ Configurar sitios web mediante Virtual Hosts.

✅ Publicar contenido HTML personalizado.

✅ Aplicar buenas prácticas de administración web.


🖥️ ¿Qué es Apache?

Apache HTTP Server es un software libre encargado de recibir solicitudes web provenientes de navegadores y responder enviando páginas, imágenes, videos u otros recursos.

Flujo de funcionamiento

Navegador Web

│

▼

Servidor Apache

│

▼

Archivos HTML, CSS, PHP

│

▼

Respuesta al Usuario


📋 Requisitos Previos

Antes de iniciar asegúrate de contar con:

RequisitoDescripción
🐧 DebianSistema correctamente instalado
🌐 Conexión a InternetPara descargar paquetes
🔑 Cuenta con sudoPermisos administrativos
💻 Navegador WebFirefox, Chromium o Edge

🔄 Paso 1. Actualizar el sistema

Actualizar repositorios:

sudo apt update

Actualizar paquetes:

sudo apt upgrade -y

¿Por qué realizar este paso?

Permite instalar versiones actualizadas y mejorar la seguridad del sistema.


📥 Paso 2. Instalar Apache

Instalar el servidor web:

sudo apt install apache2 -y

Una vez concluida la instalación, Apache iniciará automáticamente.

Verificar la versión instalada:

apache2 -v

Ejemplo:

Server version: Apache/2.4.x


🔍 Paso 3. Verificar el estado del servicio

Consultar si Apache está activo:

sudo systemctl status apache2

Salida esperada:

Active: active (running)


🚀 Paso 4. Habilitar Apache durante el arranque

Configurar inicio automático:

sudo systemctl enable apache2

Verificar:

sudo systemctl is-enabled apache2

Resultado esperado:

enabled


🌐 Paso 5. Verificar el sitio web predeterminado

Obtener la dirección IP:

hostname -I

Ejemplo:

192.168.11.105

Abrir un navegador y acceder a:

http://192.168.11.105

Si todo funciona correctamente aparecerá la página:

Apache2 Debian Default Page

✅ Esto confirma que Apache está funcionando correctamente.


📂 Paso 6. Estructura de directorios de Apache

Directorio principal

/etc/apache2/


Configuración general

/etc/apache2/apache2.conf

Contiene la configuración principal del servidor.


Configuración de puertos

/etc/apache2/ports.conf

Define los puertos utilizados por Apache.


Sitios disponibles

/etc/apache2/sites-available/

Almacena las configuraciones de Virtual Hosts.


Sitios habilitados

/etc/apache2/sites-enabled/

Contiene enlaces a los sitios activos.


Directorio web predeterminado

/var/www/html/

Aquí se almacenan las páginas públicas del sitio.


📝 Paso 7. Crear una página web personalizada

Eliminar página inicial:

sudo rm /var/www/html/index.html

Crear nueva página:

sudo nano /var/www/html/index.html

Contenido:

HTML

<!DOCTYPE html>

<html>

<head>

<title>Mi Primer Sitio Web</title>

</head>

<body>

<h1>Bienvenidos al Servidor Web Apache</h1>

<p>Mi primera página web en Debian.</p>

</body>

</html>

https://loop.usercontent.microsoft/?disableExtension=true

Guardar y salir.

Actualizar navegador:

http://IP_DEL_SERVIDOR


⚙️ Paso 8. Administración del servicio Apache

Iniciar Apache

sudo systemctl start apache2


Detener Apache

sudo systemctl stop apache2


Reiniciar Apache

sudo systemctl restart apache2


Recargar configuración

sudo systemctl reload apache2


Ver estado

sudo systemctl status apache2


🌍 Paso 9. Configuración de Virtual Hosts

Los Virtual Hosts permiten alojar múltiples sitios web en un mismo servidor.


Crear directorio del sitio

sudo mkdir -p /var/www/misitio

Asignar permisos:

sudo chown -R $USER:$USER /var/www/misitio


Crear página de prueba

nano /var/www/misitio/index.html

Contenido:

HTML

<h1>Mi sitio web funciona correctamente</h1>

https://loop.usercontent.microsoft/?disableExtension=true

Crear archivo de configuración

sudo nano /etc/apache2/sites-available/misitio.conf

Contenido:

Apache Config

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName misitio.local

DocumentRoot /var/www/misitio

ErrorLog ${APACHE_LOG_DIR}/misitio_error.log

CustomLog ${APACHE_LOG_DIR}/misitio_access.log combined

</VirtualHost>


Habilitar el sitio

sudo a2ensite misitio.conf


Deshabilitar sitio predeterminado

sudo a2dissite 000-default.conf


Verificar configuración

sudo apachectl configtest

Resultado esperado:

Syntax OK


Reiniciar Apache

sudo systemctl restart apache2


🔐 Paso 10. Permitir Apache en el Firewall

Si utilizas UFW:

Verificar perfiles disponibles:

sudo ufw app list

Permitir Apache:

sudo ufw allow “Apache Full”

Verificar reglas:

sudo ufw status


📊 Monitoreo y Diagnóstico

Consultar puertos abiertos:

ss -tulpn | grep apache

Ver procesos Apache:

ps aux | grep apache2

Ver registros de errores:

sudo tail -f /var/log/apache2/error.log

Ver registros de acceso:

sudo tail -f /var/log/apache2/access.log


🛡️ Buenas Prácticas

✅ Mantener Apache actualizado.

✅ Utilizar Virtual Hosts para separar sitios.

✅ Supervisar regularmente los registros.

✅ Limitar permisos sobre archivos web.

✅ No trabajar directamente como root.

✅ Utilizar HTTPS en entornos productivos.

✅ Realizar respaldos periódicos de la configuración.


🧪 Actividades de Comprobación

Actividad 1

Instalar Apache.

sudo apt install apache2 -y


Actividad 2

Verificar el estado del servicio.

sudo systemctl status apache2


Actividad 3

Identificar la IP del servidor.

hostname -I


Actividad 4

Crear una página personalizada.


Actividad 5

Crear un Virtual Host denominado:

practica.local


Actividad 6

Validar la configuración.

sudo apachectl configtest


Actividad 7

Consultar los registros de acceso.

sudo tail -f /var/log/apache2/access.log


📚 Preguntas de Reflexión

  1. ¿Cuál es la función principal de Apache?
  2. ¿Qué es un Virtual Host?
  3. ¿Qué directorio almacena los sitios web en Apache?
  4. ¿Para qué sirve el comando a2ensite?
  5. ¿Qué información contiene el archivo access.log?
  6. ¿Cuál es la diferencia entre reiniciar y recargar Apache?
  7. ¿Qué ventajas ofrece utilizar Virtual Hosts?

✅ Evidencias a Entregar

📸 Captura de la instalación de Apache.

📸 Captura del estado del servicio.

📸 Captura de la IP del servidor.

📸 Captura de la página web personalizada.

📸 Captura del archivo Virtual Host.

📸 Captura del resultado de:

sudo apachectl configtest

📸 Captura de los registros de acceso.

📸 Captura del sitio funcionando en el navegador.


🏆 Conclusión

Apache es uno de los servidores web más robustos y utilizados en el mundo. Su facilidad de configuración, compatibilidad con múltiples tecnologías y estabilidad lo convierten en una excelente opción para alojar sitios web, aplicaciones empresariales, plataformas educativas y servicios de red.

🌐 Apache transforma un servidor Debian en una poderosa plataforma para publicar información, aplicaciones y servicios accesibles desde cualquier navegador web.