# 🚀 Guía de Despliegue en Servidor ## 📋 Requisitos del Servidor ### Mínimos - **PHP**: 8.0 o superior - **MySQL/MariaDB**: 5.7 o superior - **Servidor Web**: Apache/Nginx - **SSL**: Certificado válido (HTTPS obligatorio para WhatsApp) - **Memoria RAM**: Mínimo 512MB - **Espacio**: 1GB libre ### Extensiones PHP Requeridas ```bash php-pdo php-pdo-mysql php-curl php-json php-mbstring php-openssl ``` ## 🌍 Configuración por Tipo de Servidor ### 🔹 **VPS/Servidor Dedicado (Ubuntu/CentOS)** #### 1. Instalar Dependencias ```bash # Ubuntu/Debian sudo apt update sudo apt install apache2 mysql-server php8.0 php8.0-mysql php8.0-curl php8.0-json php8.0-mbstring # CentOS/RHEL sudo yum install httpd mysql-server php php-mysql php-curl php-json php-mbstring ``` #### 2. Configurar Apache ```apache # /etc/apache2/sites-available/whatsapp-bot.conf ServerName tudominio.com DocumentRoot /var/www/html/bot AllowOverride All Require all granted # Redirigir HTTP a HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ServerName tudominio.com DocumentRoot /var/www/html/migrador SSLEngine on SSLCertificateFile /path/to/your/certificate.crt SSLCertificateKeyFile /path/to/your/private.key AllowOverride All Require all granted ``` #### 3. Subir Archivos ```bash # Crear directorio sudo mkdir -p /var/www/html/migrador # Subir archivos (usando SCP/SFTP) scp -r bot/* usuario@servidor:/var/www/html/bot/ # Configurar permisos sudo chown -R www-data:www-data /var/www/html/bot sudo chmod -R 755 /var/www/html/bot ``` ### 🔹 **Hosting Compartido (cPanel/Plesk)** #### 1. Subir Archivos - Accede a tu **File Manager** en cPanel - Ve a la carpeta `public_html` - Crea carpeta `migrador` (o sube directamente a raíz) - Sube todos los archivos del proyecto #### 2. Configurar Base de Datos - Ve a **MySQL Databases** en cPanel - Crea nueva base de datos: `tuusuario_whatsapp` - Crea usuario y asigna privilegios - Anota: host, usuario, contraseña, base de datos #### 3. Editar Configuración ```php // config/config.php define('DB_HOST', 'localhost'); // O tu host específico define('DB_NAME', 'tuusuario_whatsapp'); define('DB_USER', 'tuusuario_dbuser'); define('DB_PASS', 'tu_password_db'); ``` ### 🔹 **Servicios en la Nube** #### **AWS EC2** ```bash # 1. Conectar por SSH ssh -i tu-clave.pem ec2-user@tu-ip-publica # 2. Instalar LAMP stack sudo yum update -y sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2 # 3. Configurar y seguir pasos de VPS ``` #### **DigitalOcean Droplet** ```bash # 1. Crear droplet con LAMP stack preinstalado # 2. Conectar por SSH # 3. Subir archivos a /var/www/html/ ``` #### **Google Cloud Platform** ```bash # 1. Crear VM con Ubuntu # 2. Instalar LAMP stack # 3. Configurar firewall para puertos 80/443 ``` ## 🔧 Configuración Específica del Sistema ### 1. Editar config/config.php ```php ``` ### 2. Crear .htaccess (Apache) ```apache # .htaccess en raíz del proyecto RewriteEngine On # Forzar HTTPS RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Proteger archivos sensibles Require all denied Require all denied # Cache headers ExpiresActive on ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ``` ### 3. Configurar SSL (Let's Encrypt) ```bash # Instalar Certbot sudo apt install certbot python3-certbot-apache # Obtener certificado sudo certbot --apache -d tudominio.com # Auto-renovación sudo crontab -e # Agregar: 0 12 * * * /usr/bin/certbot renew --quiet ``` ## 🔗 Configuración de WhatsApp Webhook ### 1. URL del Webhook ``` https://tudominio.com/bot/api/webhook.php ``` ### 2. Configurar en Facebook Developers 1. Ve a [developers.facebook.com](https://developers.facebook.com) 2. Selecciona tu app de WhatsApp Business 3. Ve a **WhatsApp > Configuration** 4. En **Webhooks**: - **Callback URL**: `https://tudominio.com/migrador/api/webhook.php` - **Verify Token**: `mi_token_secreto_123` (o cambia en config.php) - **Webhook fields**: ✅ `conversations` ### 3. Verificar Webhook ```bash # Probar webhook manualmente curl -X GET "https://tudominio.com/migrador/api/webhook.php?hub.mode=subscribe&hub.challenge=CHALLENGE_ACCEPTED&hub.verify_token=mi_token_secreto_123" ``` ## ⚙️ Configuración Post-Instalación ### 1. Ejecutar Instalador ``` https://tudominio.com/migrador/install.php ``` ### 2. Verificar Sistema ``` https://tudominio.com/migrador/test.php ``` ### 3. Configurar Panel ``` https://tudominio.com/migrador/index.php ``` ## 🔒 Seguridad en Producción ### 1. Configuraciones PHP ```ini # php.ini ajustes expose_php = Off display_errors = Off log_errors = On allow_url_fopen = Off ``` ### 2. Permisos de Archivos ```bash # Archivos: 644 sudo find /var/www/html/migrador -type f -exec chmod 644 {} \; # Directorios: 755 sudo find /var/www/html/migrador -type d -exec chmod 755 {} \; # Config solo lectura sudo chmod 600 /var/www/html/migrador/config/config.php ``` ### 3. Backup Automático ```bash #!/bin/bash # backup.sh DATE=$(date +%Y%m%d_%H%M%S) mysqldump -u usuario -p password whatsapp_db > /backups/whatsapp_$DATE.sql tar -czf /backups/files_$DATE.tar.gz /var/www/html/migrador ``` ## 📊 Monitoreo y Logs ### 1. Logs de Apache ```bash tail -f /var/log/apache2/error.log tail -f /var/log/apache2/access.log ``` ### 2. Logs de PHP ```bash tail -f /var/log/php_errors.log ``` ### 3. Logs del Sistema ```bash # Ver logs desde el panel https://tudominio.com/migrador/index.php#logs ``` ## 🚀 Optimizaciones de Rendimiento ### 1. Cache de PHP (OPcache) ```ini # php.ini opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=1000 ``` ### 2. Compresión GZIP ```apache # En .htaccess AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/javascript ``` ### 3. Optimización MySQL ```sql -- my.cnf [mysqld] innodb_buffer_pool_size = 256M query_cache_type = 1 query_cache_size = 64M ``` ## 📞 URLs de Producción Una vez configurado: - **🏠 Panel**: https://tudominio.com/migrador/index.php - **🔗 API**: https://tudominio.com/migrador/api/ - **📱 Webhook**: https://tudominio.com/migrador/api/webhook.php - **📊 Stats**: https://tudominio.com/migrador/api/get_stats.php ## ⚠️ Troubleshooting ### Error 500 - Revisar logs de Apache/PHP - Verificar permisos de archivos - Comprobar configuración de base de datos ### Webhook no funciona - Verificar SSL válido - Comprobar URL pública - Revisar token de verificación ### Base de datos no conecta - Verificar credenciales - Comprobar host/puerto - Revisar permisos de usuario MySQL ## 📝 Checklist Final - [ ] ✅ Servidor con PHP 8.0+ y MySQL - [ ] ✅ SSL/HTTPS configurado - [ ] ✅ Archivos subidos con permisos correctos - [ ] ✅ Base de datos creada y configurada - [ ] ✅ config.php editado con datos reales - [ ] ✅ Instalador ejecutado sin errores - [ ] ✅ Webhook configurado en Facebook - [ ] ✅ Sistema probado y funcionando - [ ] ✅ Backup automático configurado ¡Tu sistema WhatsApp Bot Manager estará listo para producción! 🎉