Files
whatsapp/check_sse.sh
T
2026-01-27 15:04:51 -05:00

154 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
# Script de verificación SSE para HestiaCP
# Ejecutar en el servidor: bash check_sse.sh
echo "🔍 Verificación de SSE para HestiaCP"
echo "===================================="
echo ""
# 1. Verificar que el archivo existe
echo "1️⃣ Verificando archivos..."
if [ -f "api/sse_events.php" ]; then
echo " ✅ api/sse_events.php existe"
else
echo " ❌ api/sse_events.php NO encontrado"
echo " → Asegúrate de subir el archivo al servidor"
exit 1
fi
# 2. Verificar permisos
echo ""
echo "2️⃣ Verificando permisos..."
PERMS=$(stat -c "%a" api/sse_events.php 2>/dev/null || stat -f "%A" api/sse_events.php 2>/dev/null)
if [ "$PERMS" -ge "644" ]; then
echo " ✅ Permisos correctos ($PERMS)"
else
echo " ⚠️ Permisos: $PERMS (se recomienda 644)"
echo " Ejecutar: chmod 644 api/sse_events.php"
fi
# 3. Verificar versión PHP
echo ""
echo "3️⃣ Verificando PHP..."
PHP_VERSION=$(php -v | head -n 1)
echo " $PHP_VERSION"
if php -v | grep -q "PHP 8"; then
echo " ✅ PHP 8.x detectado"
elif php -v | grep -q "PHP 7"; then
echo " ⚠️ PHP 7.x (recomendado PHP 8.x)"
else
echo " ❌ Versión PHP desconocida"
fi
# 4. Verificar sintaxis PHP
echo ""
echo "4️⃣ Verificando sintaxis PHP..."
if php -l api/sse_events.php > /dev/null 2>&1; then
echo " ✅ Sin errores de sintaxis"
else
echo " ❌ Error de sintaxis en sse_events.php"
php -l api/sse_events.php
exit 1
fi
# 5. Verificar configuración PHP-FPM
echo ""
echo "5️⃣ Verificando PHP-FPM..."
if systemctl is-active --quiet php8.2-fpm || systemctl is-active --quiet php8.1-fpm || systemctl is-active --quiet php-fpm; then
echo " ✅ PHP-FPM está corriendo"
else
echo " ⚠️ PHP-FPM no detectado o no corriendo"
fi
# 6. Probar conexión SSE local
echo ""
echo "6️⃣ Probando conexión SSE..."
echo " Conectando (3 segundos)..."
RESPONSE=$(timeout 3 curl -N -s 'http://localhost/api/sse_events.php?token=demo_token' 2>&1 || echo "timeout")
if echo "$RESPONSE" | grep -q "event: connected"; then
echo " ✅ SSE funciona correctamente"
echo " Respuesta:"
echo "$RESPONSE" | head -5 | sed 's/^/ /'
elif echo "$RESPONSE" | grep -q "timeout"; then
echo " ⚠️ Timeout - SSE puede no estar configurado correctamente"
echo " → Revisar configuración Apache/Nginx"
elif echo "$RESPONSE" | grep -q "401"; then
echo " ⚠️ HTTP 401 - Problema de autenticación"
echo " → Revisar config/auth.php"
else
echo " ❌ Error inesperado"
echo " Respuesta:"
echo "$RESPONSE" | head -10 | sed 's/^/ /'
fi
# 7. Verificar .htaccess
echo ""
echo "7️⃣ Verificando .htaccess..."
if [ -f "api/.htaccess" ]; then
echo " ✅ api/.htaccess existe"
if grep -q "X-Accel-Buffering" api/.htaccess; then
echo " ✅ Configuración SSE encontrada"
else
echo " ⚠️ Falta configuración SSE en .htaccess"
echo " → Ver GUIA_HESTIA_SSE.md"
fi
else
echo " ⚠️ api/.htaccess no encontrado"
echo " → Crear según GUIA_HESTIA_SSE.md"
fi
# 8. Verificar configuración base de datos
echo ""
echo "8️⃣ Verificando configuración..."
if [ -f "config/config.php" ]; then
echo " ✅ config/config.php existe"
if php -r "require_once 'config/config.php'; echo 'OK';" 2>/dev/null | grep -q "OK"; then
echo " ✅ config.php carga correctamente"
else
echo " ⚠️ Error al cargar config.php"
fi
else
echo " ❌ config/config.php NO encontrado"
exit 1
fi
# 9. Verificar tabla notifications
echo ""
echo "9️⃣ Verificando tabla notifications..."
if php -r "require_once 'config/config.php'; \$db = Database::getInstance(); \$r = \$db->fetchAll('SHOW TABLES LIKE \"notifications\"'); echo (count(\$r) > 0 ? 'OK' : 'NO');" 2>/dev/null | grep -q "OK"; then
echo " ✅ Tabla notifications existe"
else
echo " ⚠️ Tabla notifications no encontrada"
echo " → Ejecutar migration para crear tabla"
fi
# Resumen final
echo ""
echo "===================================="
echo "📊 Resumen"
echo "===================================="
echo ""
if echo "$RESPONSE" | grep -q "event: connected"; then
echo "✅ SSE está funcionando correctamente"
echo ""
echo "Próximos pasos:"
echo "1. Abrir https://tu-dominio.com/conversations.php"
echo "2. Abrir consola del navegador (F12)"
echo "3. Verificar: '✅ SSE conectado'"
echo ""
echo "🚀 Sistema de notificaciones en tiempo real activo!"
else
echo "⚠️ SSE necesita configuración adicional"
echo ""
echo "Próximos pasos:"
echo "1. Revisar GUIA_HESTIA_SSE.md"
echo "2. Configurar .htaccess para SSE"
echo "3. Ajustar PHP-FPM timeout (300s)"
echo "4. Ejecutar: bash check_sse.sh"
fi
echo ""