Iniciar sesión'); } // Función para generar contraseña aleatoria segura function generateRandomPassword($length = 20) { $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*-_=+'; $password = ''; for ($i = 0; $i < $length; $i++) { $password .= $chars[random_int(0, strlen($chars) - 1)]; } return $password; } // Configuración de la instalación (compatible con cPanel) $dbHost = 'localhost'; $dbName = 'whatsapp_bot'; $dbUser = 'whatsapp_user'; $dbPass = generateRandomPassword(20); $dbRootUser = 'root'; $dbRootPass = ''; // En cPanel puede requerir contraseña // Generar contraseña para admin $adminPassword = generateRandomPassword(12); $installStep = $_GET['step'] ?? 'welcome'; $errors = []; $success = []; // Procesar instalación if ($installStep === 'install' && $_POST) { try { // 1. Intentar conectar como root para crear base de datos y usuario try { $rootPdo = new PDO("mysql:host=$dbHost;charset=utf8mb4", $dbRootUser, $dbRootPass); $rootPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { // Si no se puede conectar como root, es probable que sea hosting compartido throw new Exception("⚠️ HOSTING COMPARTIDO DETECTADO ⚠️

" . "No se pueden crear bases de datos automáticamente en este tipo de hosting.

" . "SOLUCIÓN:
" . "1. Crea manualmente la base de datos y usuario en tu panel de control
" . "2. Usa install_manual.php en su lugar
" . "3. Lee la guía: GUIA_HESTIACP.md

" . "Error técnico: " . $e->getMessage()); } // 2. Crear base de datos $rootPdo->exec("CREATE DATABASE IF NOT EXISTS `$dbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); $success[] = "✅ Base de datos '$dbName' creada correctamente"; // 3. Crear usuario con permisos $rootPdo->exec("DROP USER IF EXISTS '$dbUser'@'localhost'"); $rootPdo->exec("CREATE USER '$dbUser'@'localhost' IDENTIFIED BY '$dbPass'"); $rootPdo->exec("GRANT ALL PRIVILEGES ON `$dbName`.* TO '$dbUser'@'localhost'"); $rootPdo->exec("FLUSH PRIVILEGES"); $success[] = "✅ Usuario '$dbUser' creado con contraseña aleatoria"; // 4. Conectar con nuevo usuario $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8mb4", $dbUser, $dbPass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 5. Crear tablas desde schema.sql $schema = file_get_contents('database/schema.sql'); if (!$schema) { throw new Exception("No se pudo leer el archivo schema.sql"); } // Ejecutar comandos SQL uno por uno $statements = array_filter(array_map('trim', explode(';', $schema))); $tablesCreated = 0; foreach ($statements as $statement) { if (!empty($statement) && !preg_match('/^--/', $statement)) { $pdo->exec($statement); if (preg_match('/CREATE TABLE|INSERT INTO/', $statement)) { $tablesCreated++; } } } $success[] = "✅ $tablesCreated elementos de base de datos procesados"; // 6. Actualizar archivo de configuración $configFile = 'config/config.php'; $configContent = file_get_contents($configFile); $configContent = preg_replace("/define\('DB_HOST',\s*'[^']*'\);/", "define('DB_HOST', '$dbHost');", $configContent); $configContent = preg_replace("/define\('DB_NAME',\s*'[^']*'\);/", "define('DB_NAME', '$dbName');", $configContent); $configContent = preg_replace("/define\('DB_USER',\s*'[^']*'\);/", "define('DB_USER', '$dbUser');", $configContent); $configContent = preg_replace("/define\('DB_PASS',\s*'[^']*'\);/", "define('DB_PASS', '$dbPass');", $configContent); $configContent = preg_replace("/define\('ADMIN_PASSWORD',\s*'[^']*'\);/", "define('ADMIN_PASSWORD', '" . password_hash($adminPassword, PASSWORD_DEFAULT) . "');", $configContent); // Auto-detectar URL del servidor $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://'; $host = $_SERVER['HTTP_HOST']; $path = dirname($_SERVER['SCRIPT_NAME']); $autoUrl = $protocol . $host . $path; $configContent = preg_replace("/define\('APP_URL',\s*'[^']*'\);/", "define('APP_URL', '$autoUrl');", $configContent); file_put_contents($configFile, $configContent); $success[] = "✅ Archivo config.php actualizado con nuevas credenciales"; // 7. Crear archivo de bloqueo de instalación $lockContent = "Instalación completada: " . date('Y-m-d H:i:s') . "\n"; $lockContent .= "Desarrollado por: U-Site.app\n"; $lockContent .= "URL: https://u-site.app\n"; file_put_contents($installationLockFile, $lockContent); $success[] = "✅ Sistema bloqueado contra reinstalaciones"; // 8. Crear archivo de credenciales para referencia $credentialsFile = "CREDENCIALES_SISTEMA.txt"; $credentialsContent = "=== CREDENCIALES DEL SISTEMA WHATSAPP BOT ===\n"; $credentialsContent .= "Desarrollado por: U-Site.app (https://u-site.app)\n"; $credentialsContent .= "Generado automáticamente: " . date('Y-m-d H:i:s') . "\n\n"; $credentialsContent .= "=== BASE DE DATOS ===\n"; $credentialsContent .= "Host: $dbHost\n"; $credentialsContent .= "Base de datos: $dbName\n"; $credentialsContent .= "Usuario: $dbUser\n"; $credentialsContent .= "Contraseña: $dbPass\n\n"; $credentialsContent .= "=== PANEL ADMINISTRATIVO ===\n"; $credentialsContent .= "Usuario: admin\n"; $credentialsContent .= "Contraseña: $adminPassword\n"; $credentialsContent .= "URL Login: $autoUrl/login.php\n\n"; $credentialsContent .= "⚠️ IMPORTANTE: Guarda estas credenciales en un lugar seguro.\n"; $credentialsContent .= "⚠️ Elimina este archivo después de guardar las credenciales.\n"; $credentialsContent .= "⚠️ El sistema está protegido contra reinstalaciones.\n\n"; $credentialsContent .= "📞 Soporte técnico: support@u-site.app\n"; file_put_contents($credentialsFile, $credentialsContent); $success[] = "✅ Archivo de credenciales creado: $credentialsFile"; $installStep = 'completed'; } catch (PDOException $e) { $errors[] = "❌ Error de base de datos: " . $e->getMessage(); } catch (Exception $e) { $errors[] = "❌ Error general: " . $e->getMessage(); } } ?> 🚀 Instalador WhatsApp Bot

Instalador WhatsApp Bot

Configuración automática con credenciales aleatorias

Desarrollado por U-Site.app | Soporte técnico
1
Crear BD
Base de datos: whatsapp_bot
2
Crear Usuario
Usuario: whatsapp_user
3
Configurar
Aplicar configuración
Configuración automática para cPanel/hosting compartido:
  • Host: localhost (compatible con cualquier hosting)
  • Base de datos: whatsapp_bot (se creará automáticamente)
  • Usuario DB: whatsapp_user (se creará automáticamente)
  • Contraseña DB: Se generará aleatoriamente (20 caracteres)
  • Usuario Admin: admin
  • Contraseña Admin: Se generará aleatoriamente (12 caracteres)
Características de seguridad:
  • ✅ Protección contra reinstalaciones
  • ✅ Sistema de login con bloqueo por intentos
  • ✅ Contraseñas encriptadas
  • ✅ Auto-detección de URL del servidor
  • ✅ Compatible con cualquier hosting cPanel
Requisitos: Asegúrate de que MySQL esté funcionando en Laragon
⚠️ ¿Usas hosting compartido? (HestiaCP, cPanel, etc.)
Este instalador automático NO funcionará en hosting compartido porque requiere privilegios de administrador.

👉 SOLUCIÓN: Usar Instalador Manual Ver Guía
🔐 CONTRASEÑA BD:
👤 CONTRASEÑA ADMIN:

Instalando Sistema...

Configurando base de datos automáticamente

WhatsApp Bot Installer v1.0
Connecting to MySQL server (localhost)...
Generating secure random password...
🔐 CONTRASEÑAS GENERADAS:
DB:
Admin:
Creating database 'whatsapp_bot'...
Creating user 'whatsapp_user'@'localhost'...
Granting privileges...
Installing database schema...
Updating configuration files...
Ready to execute installation _

¡Instalación Completada!

Tu sistema WhatsApp Bot está listo para usar

Errores encontrados:
Instalación exitosa:
Credenciales de BD
Host:
Base de datos:
Usuario:
Contraseña:
Credenciales Admin
Usuario: admin
Contraseña:
URL Login:
/login.php
¡IMPORTANTE!
  • Guarda las credenciales en un lugar seguro
  • El archivo CREDENCIALES_SISTEMA.txt contiene toda la información
  • Elimina este archivo después de guardar las credenciales
  • El sistema está protegido contra reinstalaciones
  • Configura tu token de WhatsApp después del login
  • Soporte técnico: support@u-site.app
WhatsApp Bot Manager v1.0 by U-Site.app | Instalación automática con credenciales seguras | Soporte