
🌐 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:
| Requisito | Descripción |
|---|---|
| 🐧 Debian | Sistema correctamente instalado |
| 🌐 Conexión a Internet | Para descargar paquetes |
| 🔑 Cuenta con sudo | Permisos administrativos |
| 💻 Navegador Web | Firefox, 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>
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>
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
- ¿Cuál es la función principal de Apache?
- ¿Qué es un Virtual Host?
- ¿Qué directorio almacena los sitios web en Apache?
- ¿Para qué sirve el comando
a2ensite? - ¿Qué información contiene el archivo
access.log? - ¿Cuál es la diferencia entre reiniciar y recargar Apache?
- ¿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.