# Diagnóstico del Error 500 - xgestion.com.ar

**Fecha**: 30 de Mayo de 2026  
**Estado**: 🔴 CRÍTICO - Servidor no puede conectarse a la base de datos

## Problema Identificado

El servidor EC2 (34.199.75.144) está devolviendo error 500 con el mensaje:
```
Error al establecer una conexión con la base de datos
```

## Causa Raíz

El archivo `/includes/config.php` en el servidor EC2 está configurado para conectarse a:
- **Host**: `localhost`
- **Usuario**: `xgestion`
- **Contraseña**: `Lucecitas1967`
- **Base de datos**: `system`

Pero la base de datos real está en **AWS RDS**:
- **Host**: `hummingdb.c8h5m8x9v0zq.us-east-1.rds.amazonaws.com`
- **Puerto**: 3306
- **Usuario**: `hudbsuperadmin`
- **Contraseña**: `Ep0WsrgCK6o5XuON4CnT`
- **Base de datos**: `humming-db`

## Impacto

- ✅ Certificado SSL: Funcionando correctamente
- ✅ Load Balancer: Configurado correctamente
- ✅ DNS: Resolviendo correctamente
- ✅ Servidor Apache: Corriendo
- 🔴 **Conexión a base de datos: FALLANDO**
- 🔴 **Aplicación: Error 500**
- 🔴 **API de vuelos: No funciona** (hummingairways.xgestion.com.ar/intranet/sys/mods/flights/motor.php)

## Solución

### Opción 1: Conectarse por SSH y actualizar config.php

```bash
# Conectarse al servidor
ssh -i "xGestion-Prod-Server.pem" admin@34.199.75.144

# Editar el archivo de configuración
sudo nano /var/www/html/includes/config.php

# Cambiar las líneas:
$conn_serv = 'hummingdb.c8h5m8x9v0zq.us-east-1.rds.amazonaws.com';
$conn_user = 'hudbsuperadmin';
$conn_pass = 'Ep0WsrgCK6o5XuON4CnT';
$conn_db   = 'humming-db';

# Guardar y reiniciar Apache
sudo systemctl restart apache2
```

### Opción 2: Usar AWS Systems Manager (requiere habilitar SSM Agent)

Si no tenés la clave SSH, podés:
1. Habilitar SSM Agent en la instancia EC2
2. Conectarte usando AWS Systems Manager Session Manager
3. Editar el archivo de configuración

### Opción 3: Crear un snapshot y lanzar nueva instancia

Si no tenés acceso al servidor:
1. Crear snapshot del volumen EBS actual
2. Lanzar nueva instancia desde el snapshot
3. Actualizar la configuración
4. Actualizar la IP en el Target Group

## Verificación Post-Fix

Después de actualizar la configuración, verificar:

```bash
# Probar la conexión
curl -I http://xgestion.com.ar/

# Debería devolver HTTP 200 en lugar de 500

# Probar el endpoint de API
curl -H "Authorization: Bearer [TOKEN]" https://hummingairways.xgestion.com.ar/intranet/sys/mods/flights/motor.php
```

## Estado del Target Group

Una vez solucionado el error de base de datos, el Target Group debería pasar a "healthy":

```bash
aws elbv2 describe-target-health \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:788424700802:targetgroup/xGestion-TargetGroup/13587337443234cb \
  --region us-east-1 \
  --profile xgestion
```

Estado esperado: `"State": "healthy"`

## Notas Adicionales

- El certificado SSL está funcionando correctamente
- El Load Balancer está enrutando el tráfico correctamente
- El problema es SOLO la configuración de la base de datos en el servidor
- Una vez solucionado, todo debería funcionar normalmente

## Archivos Afectados

- `/includes/config.php` - Configuración principal de base de datos
- Posiblemente otros archivos que usen conexiones directas a MySQL

## Próximos Pasos

1. **URGENTE**: Actualizar configuración de base de datos en el servidor EC2
2. Reiniciar Apache
3. Verificar que el Target Group esté "healthy"
4. Probar todos los endpoints críticos
5. Monitorear logs de Apache y PHP para otros errores

---

**Última actualización**: 30 de Mayo de 2026  
**Prioridad**: 🔴 CRÍTICA
