Laboratorio 7: Apache - Sitio y VirtualHost
Unidad: 9 - Apache (Servidor Web)
Duración Estimada: 90-120 minutos
Dificultad: Intermedio
Objetivos
- Instalar Apache y validar servicio
- Crear un VirtualHost
- Revisar logs (access/error)
- Publicar un sitio simple con evidencia
Requisitos Previos
- VM Ubuntu Server LTS (22.04 o 24.04) con acceso SSH
- Usuario con permisos sudo
Pasos del Laboratorio
Paso 1: Instalacion y validacion (20 min)
BASH
- 1
- apt update actualiza el indice de paquetes.
- 2
- apt install apache2 instala Apache.
- 3
- systemctl status verifica que el servicio esta corriendo.
- 4
- curl -I valida respuesta HTTP local.
Paso 2: Crear contenido del sitio (10 min)
BASH
- 1
- mkdir -p crea la estructura del document root.
- 2
- tee escribe una pagina simple para validar.
Paso 3: VirtualHost (25 min)
BASH
1$ sudo tee /etc/apache2/sites-available/app.local.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerName app.local
DocumentRoot /var/www/app.local/public
ErrorLog ${APACHE_LOG_DIR}/app.local-error.log
CustomLog ${APACHE_LOG_DIR}/app.local-access.log combined
<Directory /var/www/app.local/public>
Require all granted
</Directory>
</VirtualHost>
EOF
2$ sudo a2ensite app.local.conf
3$ sudo a2dissite 000-default.conf
4$ sudo apache2ctl configtest
Syntax OK
5$ sudo systemctl reload apache2- 1
- tee + heredoc crea el VirtualHost.
- 2
- a2ensite habilita el sitio.
- 3
- a2dissite deshabilita el default para evitar confusiones.
- 4
- apache2ctl configtest valida sintaxis.
- 5
- systemctl reload aplica cambios sin cortar conexiones.
Paso 4: Prueba por Host header + logs (20 min)
BASH
- 1
- curl -H Host fuerza el VirtualHost sin necesidad de DNS.
- 2
- tail access.log entrega evidencia de requests.
- 3
- tail error.log confirma que no hay errores.
Entregables (Evidencia)
systemctl status apache2 --no-pagerapache2ctl configtestcurl -i -H 'Host: app.local' http://127.0.0.1/- Ultimas 5 lineas de access/error logs del vhost