Mantenimiento WordPress
Gestión de WordPress en producción.
Backups
Section titled “Backups”Base de Datos
Section titled “Base de Datos”# Exportardocker exec wordpress-db mysqldump -u wordpress -pCAMBIAR_PASSWORD wordpress > backup_$(date +%F).sql
# Importardocker exec -i wordpress-db mysql -u wordpress -pCAMBIAR_PASSWORD wordpress < backup.sqlArchivos de WordPress
Section titled “Archivos de WordPress”# Backup completodocker run --rm --volumes-from wordpress -v $(pwd):/backup alpine tar czf /backup/wordpress_files_$(date +%F).tar.gz /var/www/html
# Restaurardocker run --rm --volumes-from wordpress -v $(pwd):/backup alpine tar xzf /backup/wordpress_files_2024-11-29.tar.gz -C /Script de Backup Automático
Section titled “Script de Backup Automático”Crear /root/backup-wordpress.sh:
#!/bin/bashBACKUP_DIR="/root/backups/wordpress"DATE=$(date +%F)
mkdir -p $BACKUP_DIR
# Backup DBdocker exec wordpress-db mysqldump -u wordpress -pCAMBIAR_PASSWORD wordpress > $BACKUP_DIR/db_$DATE.sql
# Backup archivosdocker run --rm --volumes-from wordpress -v $BACKUP_DIR:/backup alpine tar czf /backup/files_$DATE.tar.gz /var/www/html
# Eliminar backups antiguos (más de 7 días)find $BACKUP_DIR -type f -mtime +7 -delete
echo "Backup completado: $DATE"Dar permisos y ejecutar:
chmod +x /root/backup-wordpress.sh./backup-wordpress.shAutomatizar con cron:
# Ejecutar cada día a las 2 AM0 2 * * * /root/backup-wordpress.sh >> /var/log/wordpress-backup.log 2>&1Actualizaciones
Section titled “Actualizaciones”WordPress se actualiza desde el panel de administración o con WP-CLI:
# Actualizar WordPress coredocker exec -it wordpress wp core update --allow-root
# Actualizar pluginsdocker exec -it wordpress wp plugin update --all --allow-root
# Actualizar temasdocker exec -it wordpress wp theme update --all --allow-root
# Listar plugins instaladosdocker exec -it wordpress wp plugin list --allow-rootActualizar Imagen Docker
Section titled “Actualizar Imagen Docker”docker compose pull wordpress wordpress-dbdocker compose up -d wordpress wordpress-dbOptimización
Section titled “Optimización”Caché (con Plugin)
Section titled “Caché (con Plugin)”Instalar plugin de caché recomendado:
docker exec -it wordpress wp plugin install wp-super-cache --activate --allow-rootO configurar desde el panel: Plugins > Añadir nuevo > WP Super Cache / W3 Total Cache
Limpieza de Base de Datos
Section titled “Limpieza de Base de Datos”# Optimizar todas las tablasdocker exec -it wordpress-db mysqlcheck -u wordpress -pCAMBIAR_PASSWORD --optimize wordpressComprimir Imágenes
Section titled “Comprimir Imágenes”Instalar plugin:
docker exec -it wordpress wp plugin install imagify --activate --allow-rootComandos Útiles
Section titled “Comandos Útiles”# Ver logsdocker compose logs -f wordpress
# Reiniciar WordPressdocker compose restart wordpress
# Shell del contenedordocker exec -it wordpress bash
# Shell de MySQLdocker exec -it wordpress-db mysql -u wordpress -pCAMBIAR_PASSWORD wordpress
# Ver espacio usadodocker system dfdu -sh /var/lib/docker/volumes/wordpress_dataSeguridad
Section titled “Seguridad”Cambiar Prefijo de Tablas
Section titled “Cambiar Prefijo de Tablas”Desde WP-CLI:
docker exec -it wordpress wp db query "RENAME TABLE wp_posts TO xyz_posts" --allow-root# Repetir para todas las tablasDeshabilitar Edición de Archivos
Section titled “Deshabilitar Edición de Archivos”Crear o editar wp-config.php en el volumen:
define('DISALLOW_FILE_EDIT', true);Limitar Intentos de Login
Section titled “Limitar Intentos de Login”Instalar plugin:
docker exec -it wordpress wp plugin install limit-login-attempts-reloaded --activate --allow-rootMonitoreo
Section titled “Monitoreo”# Ver uso de recursosdocker stats wordpress wordpress-db
# Ver tamaño de base de datosdocker exec -it wordpress-db mysql -u wordpress -pCAMBIAR_PASSWORD -e "SELECT table_schema AS 'Database', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' FROM information_schema.TABLES WHERE table_schema = 'wordpress';"