154 lines
4.8 KiB
Bash
Executable File
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 ""
|