PDO::ERRMODE_EXCEPTION ]); $success[] = "✅ Conexión exitosa"; // 2. Aplicar schema básico $basicSchema = " CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, phone_number VARCHAR(20) UNIQUE NOT NULL, name VARCHAR(100), status ENUM('active', 'inactive') DEFAULT 'active', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS conversations ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, direction ENUM('incoming', 'outgoing') NOT NULL, content TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE IF NOT EXISTS system_config ( id INT AUTO_INCREMENT PRIMARY KEY, config_key VARCHAR(100) UNIQUE NOT NULL, config_value TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT IGNORE INTO system_config (config_key, config_value) VALUES ('app_installed', '1'), ('install_date', NOW()), ('admin_user', 'admin'); "; $statements = array_filter(explode(';', $basicSchema)); foreach ($statements as $stmt) { if (trim($stmt)) { $pdo->exec(trim($stmt)); } } $success[] = "✅ Tablas creadas"; // 3. Actualizar config.php $configFile = 'config/config.php'; if (file_exists($configFile)) { $config = file_get_contents($configFile); $config = preg_replace("/define\('DB_HOST',\s*'[^']*'\);/", "define('DB_HOST', '$dbHost');", $config); $config = preg_replace("/define\('DB_PORT',\s*'[^']*'\);/", "define('DB_PORT', '$dbPort');", $config); $config = preg_replace("/define\('DB_NAME',\s*'[^']*'\);/", "define('DB_NAME', '$dbName');", $config); $config = preg_replace("/define\('DB_USER',\s*'[^']*'\);/", "define('DB_USER', '$dbUser');", $config); $config = preg_replace("/define\('DB_PASS',\s*'[^']*'\);/", "define('DB_PASS', '$dbPass');", $config); $config = preg_replace("/define\('ADMIN_PASSWORD',\s*'[^']*'\);/", "define('ADMIN_PASSWORD', '" . password_hash($adminPassword, PASSWORD_DEFAULT) . "');", $config); file_put_contents($configFile, $config); $success[] = "✅ Configuración actualizada"; } // 4. Crear archivo de instalación completada file_put_contents('.installation_completed', date('Y-m-d H:i:s')); $success[] = "✅ Instalación completada"; // 5. Crear credenciales $creds = "USUARIO ADMIN: admin\nCONTRASEÑA: $adminPassword\nFECHA: " . date('Y-m-d H:i:s'); file_put_contents('CREDENCIALES.txt', $creds); $success[] = "✅ Credenciales guardadas en CREDENCIALES.txt"; $step = 'completed'; } catch (Exception $e) { $errors[] = "❌ Error: " . $e->getMessage(); } } } ?> 📦 Instalador Simplificado

📦 Instalador Simplificado

Para hosting compartido (HestiaCP/cPanel)

Antes de continuar: Asegúrate de haber creado la base de datos y usuario en tu panel de control.
Contraseña de administrador:

⚙️ Instalando...

❌ Errores:

Reintentar
✅ Progreso:

🎉 ¡Instalación Exitosa!

🔐 Credenciales de Acceso
Usuario: admin
Contraseña:
🚀 Próximos Pasos
Importante: Guarda las credenciales. El archivo CREDENCIALES.txt contiene toda la información.