{"id":3697,"date":"2026-07-12T11:43:50","date_gmt":"2026-07-12T09:43:50","guid":{"rendered":"https:\/\/mantenimientoweb.pro\/blog\/como-hacer-un-backup-completo-archivos-y-base-de-datos-en-prestashop\/"},"modified":"2026-07-12T11:43:52","modified_gmt":"2026-07-12T09:43:52","slug":"como-hacer-un-backup-completo-archivos-y-base-de-datos-en-prestashop","status":"publish","type":"post","link":"https:\/\/mantenimientoweb.pro\/blog\/como-hacer-un-backup-completo-archivos-y-base-de-datos-en-prestashop\/","title":{"rendered":"\u00bfC\u00f3mo hacer un backup completo (archivos y base de datos) en PrestaShop?"},"content":{"rendered":"<header>\n    \u00bfC\u00f3mo hacer un backup completo en PrestaShop? Archivos, base de datos y sentido com\u00fan antes del desastre \ud83d\udee1\ufe0f<\/p>\n<p>Una tienda online sin copia de seguridad es una catedral hecha de cristal: puede brillar durante a\u00f1os, hasta que una actualizaci\u00f3n malhumorada, un m\u00f3dulo dudoso o un servidor con vocaci\u00f3n de drama la convierten en polvo digital. Aqu\u00ed tienes una gu\u00eda profesional, pr\u00e1ctica y bastante realista para hacer un backup completo de PrestaShop sin confiar tu negocio a la buena suerte.<\/p>\n<p>      <span>\u2705 Archivos de PrestaShop<\/span><br \/>\n      <span>\u2705 Base de datos MySQL\/MariaDB<\/span><br \/>\n      <span>\u2705 Verificaci\u00f3n y restauraci\u00f3n<\/span><br \/>\n      <span>\u2705 Automatizaci\u00f3n con cron<\/span><br \/>\n      <span>\u2705 Seguridad y cifrado<\/span><\/p>\n<\/header>\n<article>\n<p>El backup suele interesarnos tarde. Es una de esas verdades peque\u00f1as y antip\u00e1ticas de la administraci\u00f3n web. Mientras todo funciona, una copia de seguridad parece burocracia; cuando algo se rompe, se convierte en literatura sagrada. Y PrestaShop, como cualquier ecommerce vivo, no perdona demasiado: productos, im\u00e1genes, pedidos, clientes, direcciones, reglas de carrito, m\u00f3dulos de pago, plantillas, traducciones, facturas, configuraciones\u2026 todo respira en conjunto. Separar archivos y base de datos es como intentar guardar una canci\u00f3n conservando solo la letra y olvidando la melod\u00eda.<\/p>\n<p>La iron\u00eda es fina, pero muerde: muchas tiendas invierten horas en optimizar banners de temporada y ni diez minutos en comprobar si su backup se puede restaurar. Luego llega el incendio. No siempre es un hacker con capucha; a veces es un clic inocente en \u201cactualizar m\u00f3dulo\u201d. La tragedia moderna rara vez entra rompiendo la puerta. Entra con un bot\u00f3n azul.<\/p>\n<h2>Contenido de esta gu\u00eda \ud83d\udccc<\/h2>\n<ol>\n<li><a href=\"#que-es-backup-completo\">Qu\u00e9 significa realmente un backup completo en PrestaShop<\/a><\/li>\n<li><a href=\"#antes-de-empezar\">Qu\u00e9 revisar antes de hacer la copia<\/a><\/li>\n<li><a href=\"#backup-archivos\">C\u00f3mo copiar todos los archivos de PrestaShop<\/a><\/li>\n<li><a href=\"#backup-base-datos\">C\u00f3mo exportar la base de datos MySQL o MariaDB<\/a><\/li>\n<li><a href=\"#backoffice\">Qu\u00e9 aporta el panel de PrestaShop y qu\u00e9 no<\/a><\/li>\n<li><a href=\"#verificar\">C\u00f3mo verificar que el backup sirve de verdad<\/a><\/li>\n<li><a href=\"#restaurar\">C\u00f3mo restaurar una copia completa<\/a><\/li>\n<li><a href=\"#automatizar\">Automatizaci\u00f3n, cifrado y retenci\u00f3n<\/a><\/li>\n<li><a href=\"#errores\">Errores frecuentes que arruinan copias aparentemente perfectas<\/a><\/li>\n<\/ol>\n<section id=\"que-es-backup-completo\">\n<h2>1. Qu\u00e9 es un backup completo de PrestaShop, sin adornos innecesarios \ud83e\udde9<\/h2>\n<p>Un <strong>backup completo de PrestaShop<\/strong> incluye dos grandes piezas: <strong>los archivos del sitio<\/strong> y <strong>la base de datos<\/strong>. Uno sin el otro es un mapa sin territorio, o un escaparate sin almac\u00e9n. Los archivos contienen el c\u00f3digo, m\u00f3dulos, temas, im\u00e1genes y configuraciones f\u00edsicas. La base de datos contiene la informaci\u00f3n din\u00e1mica: productos, categor\u00edas, clientes, pedidos, carritos, configuraci\u00f3n de tienda, combinaciones, stock, direcciones, cupones y mucho m\u00e1s.<\/p>\n<p>En PrestaShop 1.7, 8 y versiones recientes, buena parte de la configuraci\u00f3n de conexi\u00f3n a la base de datos se encuentra en <code>app\/config\/parameters.php<\/code>. En instalaciones antiguas, especialmente PrestaShop 1.6, suele estar en <code>config\/settings.inc.php<\/code>. Este detalle importa. En una migraci\u00f3n o restauraci\u00f3n, esos archivos son la llave bajo el felpudo; \u00fatil para el propietario, peligrosa si cae en malas manos.<\/p>\n<table>\n<thead>\n<tr>\n<th>Elemento<\/th>\n<th>Qu\u00e9 contiene<\/th>\n<th>Por qu\u00e9 es cr\u00edtico<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Archivos del sitio<\/strong><\/td>\n<td>N\u00facleo de PrestaShop, m\u00f3dulos, temas, im\u00e1genes, documentos, archivos descargables, configuraciones, overrides.<\/td>\n<td>Sin ellos no se reconstruye la apariencia, funcionalidades personalizadas ni recursos visuales.<\/td>\n<\/tr>\n<tr>\n<td><strong>Base de datos<\/strong><\/td>\n<td>Productos, pedidos, clientes, stock, transportistas, reglas de precio, configuraci\u00f3n, URLs, multitienda.<\/td>\n<td>Es la memoria comercial de la tienda. Perderla es perder el pulso del negocio.<\/td>\n<\/tr>\n<tr>\n<td><strong>Configuraci\u00f3n del servidor<\/strong><\/td>\n<td>Versi\u00f3n PHP, extensiones, tareas cron, reglas de hosting, certificados SSL, configuraci\u00f3n de cach\u00e9.<\/td>\n<td>No siempre va dentro del backup, pero conviene documentarla para restaurar sin improvisar.<\/td>\n<\/tr>\n<tr>\n<td><strong>Correos y DNS<\/strong><\/td>\n<td>Cuentas de email, SPF, DKIM, DMARC, registros DNS, SMTP.<\/td>\n<td>Un ecommerce restaurado que no env\u00eda correos es como una tienda abierta con la caja muda.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Idea clave:<\/strong> si solo exportas la base de datos desde el back office, no tienes un backup completo. Tienes una parte importante, s\u00ed, pero no las im\u00e1genes de producto, ni los m\u00f3dulos personalizados, ni el tema, ni los archivos descargables. Ser\u00eda como conservar los libros contables de una tienda despu\u00e9s de haber perdido el local.<\/p>\n<\/section>\n<section id=\"antes-de-empezar\">\n<h2>2. Antes de empezar: prepara el terreno para no copiar el caos \ud83e\udded<\/h2>\n<p>Hacer una copia de seguridad no consiste en pulsar botones con aire solemne. Conviene saber qu\u00e9 se est\u00e1 copiando, desde d\u00f3nde y con qu\u00e9 estado de la tienda. PrestaShop es din\u00e1mico: mientras t\u00fa descargas archivos, alguien puede estar pagando un pedido; mientras exportas la base de datos, un m\u00f3dulo puede estar escribiendo registros. La modernidad es eso: todo ocurre al mismo tiempo, incluso lo que preferir\u00edas que esperase.<\/p>\n<h3>Checklist previa<\/h3>\n<ul>\n<li>Identifica la versi\u00f3n de PrestaShop: 1.6, 1.7, 8.x o superior.<\/li>\n<li>Localiza el directorio ra\u00edz de la tienda: por ejemplo <code>public_html<\/code>, <code>www<\/code>, <code>htdocs<\/code> o una carpeta espec\u00edfica del dominio.<\/li>\n<li>Comprueba el nombre real del directorio de administraci\u00f3n, que suele estar renombrado por seguridad: <code>admin123xyz<\/code>, <code>gestion<\/code>, etc.<\/li>\n<li>Localiza las credenciales de base de datos en <code>app\/config\/parameters.php<\/code> o <code>config\/settings.inc.php<\/code>.<\/li>\n<li>Verifica el espacio disponible en el servidor antes de comprimir archivos.<\/li>\n<li>Si la tienda recibe pedidos constantes, programa una ventana de mantenimiento.<\/li>\n<li>Documenta versi\u00f3n de PHP, motor MySQL\/MariaDB, m\u00f3dulos cr\u00edticos, tema activo, integraciones de pago, ERP, CRM, marketplace y transportistas.<\/li>\n<\/ul>\n<h3>\u00bfDebes activar el modo mantenimiento?<\/h3>\n<p>Para una copia ordinaria en una tienda peque\u00f1a, puede bastar con hacer el backup en horas de baja actividad. Para una tienda con pedidos frecuentes, integraciones externas o mucho movimiento de stock, lo prudente es activar el <strong>modo mantenimiento de PrestaShop<\/strong> durante unos minutos. El men\u00fa exacto cambia seg\u00fan versi\u00f3n, pero suele encontrarse en \u00e1reas como <strong>Par\u00e1metros de la tienda<\/strong>, <strong>Configuraci\u00f3n<\/strong> o <strong>Mantenimiento<\/strong>.<\/p>\n<p>La raz\u00f3n es sencilla: quieres que archivos y base de datos representen el mismo instante. Si copias la base de datos a las 10:01 y los archivos a las 10:25, mientras un m\u00f3dulo de pago se actualiza entre medias, tu backup puede quedar ligeramente torcido, como una mesa con una pata m\u00e1s corta.<\/p>\n<p><strong>Atenci\u00f3n:<\/strong> si est\u00e1s haciendo el backup justo antes de actualizar PrestaShop, instalar un m\u00f3dulo, cambiar de servidor o tocar el tema, no improvises. Haz primero la copia completa, desc\u00e1rgala fuera del servidor y verifica que se puede abrir. El optimismo no es una estrategia de recuperaci\u00f3n.<\/p>\n<\/section>\n<section id=\"backup-archivos\">\n<h2>3. C\u00f3mo hacer backup de los archivos de PrestaShop \ud83d\udcc1<\/h2>\n<p>Los archivos de PrestaShop no son solo \u201cla web\u201d. Son la piel, los huesos y algunas cicatrices. Ah\u00ed viven el tema visual, los m\u00f3dulos, im\u00e1genes de producto, archivos descargables, personalizaciones, traducciones, documentos y configuraciones.<\/p>\n<h3>Carpetas y archivos que no debes olvidar<\/h3>\n<table>\n<thead>\n<tr>\n<th>Ruta habitual<\/th>\n<th>Contenido<\/th>\n<th>Importancia<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/img<\/code><\/td>\n<td>Im\u00e1genes de productos, categor\u00edas, fabricantes, tiendas y otros recursos.<\/td>\n<td>Alt\u00edsima. Una tienda sin im\u00e1genes vende como un cat\u00e1logo bajo la lluvia.<\/td>\n<\/tr>\n<tr>\n<td><code>\/modules<\/code><\/td>\n<td>M\u00f3dulos instalados, incluidos pagos, env\u00edos, SEO, anal\u00edtica, conectores externos.<\/td>\n<td>Alt\u00edsima, sobre todo si hay m\u00f3dulos personalizados o versiones antiguas dif\u00edciles de conseguir.<\/td>\n<\/tr>\n<tr>\n<td><code>\/themes<\/code><\/td>\n<td>Tema activo y temas adicionales.<\/td>\n<td>Cr\u00edtica para conservar dise\u00f1o, plantillas y modificaciones.<\/td>\n<\/tr>\n<tr>\n<td><code>\/override<\/code><\/td>\n<td>Sobrescrituras de clases y controladores.<\/td>\n<td>Muy importante. Puede contener l\u00f3gica personalizada que nadie recuerda hasta que falta.<\/td>\n<\/tr>\n<tr>\n<td><code>\/download<\/code><\/td>\n<td>Productos virtuales descargables.<\/td>\n<td>Cr\u00edtica si vendes archivos digitales.<\/td>\n<\/tr>\n<tr>\n<td><code>\/upload<\/code><\/td>\n<td>Archivos subidos por clientes o formularios, seg\u00fan configuraci\u00f3n y m\u00f3dulos.<\/td>\n<td>Importante en tiendas con personalizaci\u00f3n de productos.<\/td>\n<\/tr>\n<tr>\n<td><code>\/mails<\/code><\/td>\n<td>Plantillas de correo.<\/td>\n<td>Importante si han sido personalizadas.<\/td>\n<\/tr>\n<tr>\n<td><code>\/translations<\/code><\/td>\n<td>Traducciones en instalaciones antiguas o determinadas estructuras.<\/td>\n<td>Variable, pero recomendable copiar.<\/td>\n<\/tr>\n<tr>\n<td><code>\/app\/config\/parameters.php<\/code><\/td>\n<td>Credenciales y par\u00e1metros de conexi\u00f3n en PrestaShop 1.7 y superiores.<\/td>\n<td>Cr\u00edtica y sensible. Debe protegerse.<\/td>\n<\/tr>\n<tr>\n<td><code>\/config\/settings.inc.php<\/code><\/td>\n<td>Configuraci\u00f3n en PrestaShop 1.6 y algunas instalaciones antiguas.<\/td>\n<td>Cr\u00edtica y sensible.<\/td>\n<\/tr>\n<tr>\n<td><code>.htaccess<\/code><\/td>\n<td>Reglas de URL amigables, redirecciones, par\u00e1metros del servidor Apache.<\/td>\n<td>Importante para SEO y funcionamiento de rutas.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>M\u00e9todo recomendado: backup por SSH<\/h3>\n<p>Si tienes acceso SSH, \u00fasalo. Es m\u00e1s r\u00e1pido, m\u00e1s fiable y menos propenso a errores que descargar miles de archivos por FTP. El FTP, noble anciano de Internet, a\u00fan camina; pero para copias grandes se cansa como mula en cuesta.<\/p>\n<p>Ejemplo para comprimir toda la tienda desde el directorio ra\u00edz:<\/p>\n<pre><code>cd \/home\/usuario\/public_html\nmkdir -p \/home\/usuario\/backups\n\ntar -czpf \/home\/usuario\/backups\/prestashop-archivos-$(date +%F).tar.gz .<\/code><\/pre>\n<p>Este comando crea un archivo <code>.tar.gz<\/code> con todo el contenido de la tienda. La opci\u00f3n <code>-p<\/code> ayuda a conservar permisos. El punto final <code>.<\/code> indica \u201ctodo lo que hay aqu\u00ed\u201d, incluyendo archivos ocultos como <code>.htaccess<\/code>, siempre que est\u00e9s en el directorio correcto.<\/p>\n<h3>\u00bfConviene excluir cach\u00e9 y logs?<\/h3>\n<p>Depende del objetivo. Para un backup estrictamente forense, copia todo. Para un backup operativo orientado a restaurar la tienda, puedes excluir cach\u00e9 y logs porque suelen regenerarse y ocupan bastante espacio. En PrestaShop 1.7 y 8, la cach\u00e9 suele estar en <code>var\/cache<\/code>. Los logs pueden estar en <code>var\/logs<\/code> o en ubicaciones del hosting.<\/p>\n<pre><code>cd \/home\/usuario\/public_html\nmkdir -p \/home\/usuario\/backups\n\ntar --exclude='.\/var\/cache\/*' \\\n    --exclude='.\/var\/logs\/*' \\\n    -czpf \/home\/usuario\/backups\/prestashop-archivos-$(date +%F).tar.gz .<\/code><\/pre>\n<p><strong>Matiz importante:<\/strong> excluir cach\u00e9 no hace que el backup sea incompleto en sentido pr\u00e1ctico, porque PrestaShop puede regenerarla. Pero no excluyas carpetas como <code>\/img<\/code>, <code>\/modules<\/code>, <code>\/themes<\/code>, <code>\/download<\/code> o <code>\/upload<\/code> salvo que sepas exactamente lo que haces.<\/p>\n<h3>Si no tienes SSH: SFTP, cPanel o panel del hosting<\/h3>\n<p>Si tu hosting no ofrece SSH, a\u00fan puedes hacer una copia decente:<\/p>\n<ul>\n<li><strong>SFTP con FileZilla, Cyberduck o WinSCP:<\/strong> descarga todo el directorio ra\u00edz de PrestaShop, activando la visualizaci\u00f3n de archivos ocultos. Revisa la cola de transferencias fallidas.<\/li>\n<li><strong>Administrador de archivos de cPanel, Plesk o similar:<\/strong> comprime la carpeta de la tienda en <code>.zip<\/code> o <code>.tar.gz<\/code> desde el servidor y luego descarga el archivo comprimido.<\/li>\n<li><strong>Herramientas del proveedor:<\/strong> JetBackup, Acronis, R1Soft, snapshots del hosting o copias completas de cuenta pueden ser \u00fatiles, aunque conviene no depender solo de ellas.<\/li>\n<\/ul>\n<p>El m\u00e9todo de comprimir en el servidor y descargar un \u00fanico archivo suele ser m\u00e1s robusto que transferir 60.000 archivos peque\u00f1os. Los archivos peque\u00f1os por FTP son como granos de arroz en una tormenta: alguno acaba en el suelo.<\/p>\n<\/section>\n<section id=\"backup-base-datos\">\n<h2>4. C\u00f3mo hacer backup de la base de datos de PrestaShop \ud83d\uddc4\ufe0f<\/h2>\n<p>La base de datos es el diario \u00edntimo de la tienda. Ah\u00ed est\u00e1n los pedidos de madrugada, los carritos abandonados, las reglas de descuento que alguien cre\u00f3 en 2021 y nadie se atreve a borrar, los clientes, el stock, las combinaciones de producto, la configuraci\u00f3n de m\u00f3dulos, los transportistas, las URLs y, en instalaciones multitienda, una arquitectura que puede ser tan delicada como una telara\u00f1a con facturas.<\/p>\n<h3>Localiza las credenciales de conexi\u00f3n<\/h3>\n<p>En PrestaShop 1.7, 8 y versiones actuales, abre:<\/p>\n<pre><code>app\/config\/parameters.php<\/code><\/pre>\n<p>Busca valores similares a estos:<\/p>\n<pre><code>'database_host' =&gt; '127.0.0.1',\n'database_port' =&gt; '',\n'database_name' =&gt; 'nombre_basedatos',\n'database_user' =&gt; 'usuario_basedatos',\n'database_password' =&gt; 'contrase\u00f1a',\n'database_prefix' =&gt; 'ps_',<\/code><\/pre>\n<p>En PrestaShop 1.6, revisa:<\/p>\n<pre><code>config\/settings.inc.php<\/code><\/pre>\n<p>Encontrar\u00e1s constantes como <code>_DB_SERVER_<\/code>, <code>_DB_NAME_<\/code>, <code>_DB_USER_<\/code>, <code>_DB_PASSWD_<\/code> y <code>_DB_PREFIX_<\/code>.<\/p>\n<h3>M\u00e9todo recomendado: mysqldump por SSH<\/h3>\n<p>Para bases de datos medianas o grandes, <code>mysqldump<\/code> suele ser la opci\u00f3n m\u00e1s fiable. Este comando exporta la base de datos en formato SQL:<\/p>\n<pre><code>mkdir -p \/home\/usuario\/backups\n\nmysqldump --single-transaction \\\n          --quick \\\n          --routines \\\n          --triggers \\\n          --events \\\n          --default-character-set=utf8mb4 \\\n          -u usuario_basedatos \\\n          -p nombre_basedatos &gt; \/home\/usuario\/backups\/prestashop-db-$(date +%F).sql<\/code><\/pre>\n<p>Despu\u00e9s puedes comprimir el archivo:<\/p>\n<pre><code>gzip \/home\/usuario\/backups\/prestashop-db-$(date +%F).sql<\/code><\/pre>\n<p>O hacerlo en una sola l\u00ednea:<\/p>\n<pre><code>mysqldump --single-transaction --quick --routines --triggers --events --default-character-set=utf8mb4 \\\n-u usuario_basedatos -p nombre_basedatos | gzip &gt; \/home\/usuario\/backups\/prestashop-db-$(date +%F).sql.gz<\/code><\/pre>\n<h3>Qu\u00e9 significan esas opciones<\/h3>\n<table>\n<thead>\n<tr>\n<th>Opci\u00f3n<\/th>\n<th>Utilidad<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>--single-transaction<\/code><\/td>\n<td>Ayuda a obtener una copia consistente en tablas InnoDB sin bloquear toda la base de datos durante la exportaci\u00f3n.<\/td>\n<\/tr>\n<tr>\n<td><code>--quick<\/code><\/td>\n<td>Lee las filas progresivamente, \u00fatil para bases de datos grandes.<\/td>\n<\/tr>\n<tr>\n<td><code>--routines<\/code><\/td>\n<td>Incluye procedimientos y funciones almacenadas si existen.<\/td>\n<\/tr>\n<tr>\n<td><code>--triggers<\/code><\/td>\n<td>Incluye disparadores. Normalmente viene activado, pero conviene indicarlo.<\/td>\n<\/tr>\n<tr>\n<td><code>--events<\/code><\/td>\n<td>Incluye eventos programados de MySQL\/MariaDB si se usan.<\/td>\n<\/tr>\n<tr>\n<td><code>--default-character-set=utf8mb4<\/code><\/td>\n<td>Evita problemas con caracteres especiales, emojis y alfabetos extendidos.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Sobre InnoDB y MyISAM:<\/strong> <code>--single-transaction<\/code> es especialmente \u00fatil con tablas InnoDB. Si tu tienda conserva tablas MyISAM antiguas o de m\u00f3dulos viejos, puede que necesites una ventana de mantenimiento o bloqueo de tablas para m\u00e1xima consistencia. PrestaShop moderno trabaja habitualmente con InnoDB, pero los m\u00f3dulos de terceros a veces son arqueolog\u00eda con PHP.<\/p>\n<h3>Exportar con phpMyAdmin<\/h3>\n<p>Si no tienes SSH, phpMyAdmin puede servir, especialmente para bases de datos peque\u00f1as o medianas.<\/p>\n<ol>\n<li>Accede a phpMyAdmin desde el panel de hosting.<\/li>\n<li>Selecciona la base de datos de PrestaShop.<\/li>\n<li>Haz clic en <strong>Exportar<\/strong>.<\/li>\n<li>Elige m\u00e9todo <strong>Personalizado<\/strong>, no solo r\u00e1pido si quieres controlar opciones.<\/li>\n<li>Formato: <strong>SQL<\/strong>.<\/li>\n<li>Marca todas las tablas correspondientes a tu instalaci\u00f3n. El prefijo suele ser <code>ps_<\/code>, aunque puede variar.<\/li>\n<li>Activa opciones como <strong>Agregar sentencia DROP TABLE<\/strong> si vas a restaurar sobre una base existente.<\/li>\n<li>Selecciona compresi\u00f3n <strong>gzip<\/strong> si est\u00e1 disponible.<\/li>\n<li>Exporta y descarga el archivo.<\/li>\n<\/ol>\n<p>phpMyAdmin es c\u00f3modo, pero tiene techo: l\u00edmites de tiempo, memoria, tama\u00f1o de descarga y paciencia humana. En bases grandes, puede fallar a mitad de camino con la discreci\u00f3n de una vela apag\u00e1ndose. Si tu base pesa cientos de megabytes o varios gigabytes, usa SSH o una herramienta del hosting.<\/p>\n<h3>Exportar desde el panel del hosting<\/h3>\n<p>Muchos proveedores permiten descargar la base de datos desde cPanel, Plesk, DirectAdmin u otras plataformas. Es v\u00e1lido si el sistema genera un dump SQL completo. Aun as\u00ed, verifica el archivo. \u201cEl hosting hace backups\u201d es una frase tranquilizadora, como \u201cel paraguas est\u00e1 en alg\u00fan lugar\u201d; \u00fatil solo si sabes d\u00f3nde y si no est\u00e1 roto.<\/p>\n<\/section>\n<section id=\"backoffice\">\n<h2>5. \u00bfSirve el backup desde el back office de PrestaShop? S\u00ed, pero no como \u00fanico salvavidas \u2699\ufe0f<\/h2>\n<p>PrestaShop incluye, seg\u00fan versi\u00f3n y configuraci\u00f3n, una opci\u00f3n para realizar copias de la base de datos desde el panel de administraci\u00f3n. Puede aparecer en rutas como <strong>Par\u00e1metros avanzados &gt; Base de datos &gt; Copia de seguridad DB<\/strong> o similares. Es una herramienta pr\u00e1ctica para exportaciones puntuales de la base de datos.<\/p>\n<p>Pero hay que decirlo sin ceremonias: <strong>no es un backup completo<\/strong>. No copia archivos de la tienda, im\u00e1genes, m\u00f3dulos, temas, archivos descargables ni personalizaciones en disco.<\/p>\n<p><strong>No confundas \u201cbackup de base de datos\u201d con \u201cbackup de tienda\u201d.<\/strong> Si ma\u00f1ana desaparece tu carpeta <code>\/img<\/code>, el SQL no dibujar\u00e1 m\u00e1gicamente las fotograf\u00edas de tus productos. Ser\u00eda hermoso, casi b\u00edblico, pero no.<\/p>\n<h3>Cu\u00e1ndo usarlo<\/h3>\n<ul>\n<li>Antes de cambios menores en configuraci\u00f3n.<\/li>\n<li>Como copia adicional r\u00e1pida de la base de datos.<\/li>\n<li>Para tiendas peque\u00f1as donde el tama\u00f1o no provoca errores de tiempo de ejecuci\u00f3n.<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo no basta<\/h3>\n<ul>\n<li>Antes de actualizar PrestaShop.<\/li>\n<li>Antes de cambiar de servidor.<\/li>\n<li>Antes de instalar o actualizar m\u00f3dulos cr\u00edticos.<\/li>\n<li>Cuando necesitas restaurar la tienda completa.<\/li>\n<li>Cuando has personalizado el tema, m\u00f3dulos u overrides.<\/li>\n<\/ul>\n<\/section>\n<section id=\"verificar\">\n<h2>6. Verificar el backup: la diferencia entre tener una copia y tener una esperanza \ud83d\udd0d<\/h2>\n<p>Un backup no verificado es una promesa. Y las promesas, en tecnolog\u00eda, deber\u00edan pagar impuestos. La \u00fanica copia de seguridad que merece confianza es aquella que se puede abrir, comprobar y restaurar en un entorno de prueba.<\/p>\n<h3>Comprobaciones r\u00e1pidas por SSH<\/h3>\n<p>Para verificar que el archivo comprimido de la base de datos no est\u00e1 corrupto:<\/p>\n<pre><code>gzip -t \/home\/usuario\/backups\/prestashop-db-2026-01-15.sql.gz<\/code><\/pre>\n<p>Para listar el contenido del archivo de archivos:<\/p>\n<pre><code>tar -tzf \/home\/usuario\/backups\/prestashop-archivos-2026-01-15.tar.gz | head<\/code><\/pre>\n<p>Para generar sumas de verificaci\u00f3n:<\/p>\n<pre><code>cd \/home\/usuario\/backups\nsha256sum prestashop-archivos-2026-01-15.tar.gz &gt; prestashop-archivos-2026-01-15.sha256\nsha256sum prestashop-db-2026-01-15.sql.gz &gt; prestashop-db-2026-01-15.sha256<\/code><\/pre>\n<h3>Comprobaciones manuales m\u00ednimas<\/h3>\n<ul>\n<li>El archivo de archivos pesa una cantidad razonable para tu tienda.<\/li>\n<li>El dump SQL no pesa 0 KB.<\/li>\n<li>El archivo SQL contiene instrucciones <code>CREATE TABLE<\/code> e <code>INSERT INTO<\/code>.<\/li>\n<li>El final del dump no muestra errores ni cortes inesperados.<\/li>\n<li>La carpeta <code>\/img<\/code> est\u00e1 incluida.<\/li>\n<li>La carpeta <code>\/modules<\/code> est\u00e1 incluida.<\/li>\n<li>La carpeta <code>\/themes<\/code> est\u00e1 incluida.<\/li>\n<li>El archivo <code>.htaccess<\/code> est\u00e1 incluido si tu servidor lo usa.<\/li>\n<li>Los archivos de configuraci\u00f3n sensibles est\u00e1n incluidos pero protegidos.<\/li>\n<\/ul>\n<h3>La prueba reina: restaurar en staging<\/h3>\n<p>Lo profesional es restaurar el backup en un entorno de pruebas: un subdominio, una carpeta protegida por contrase\u00f1a, una m\u00e1quina local con DDEV, Docker, MAMP, Laragon o un hosting secundario. No hace falta hacerlo todos los d\u00edas, pero s\u00ed peri\u00f3dicamente y antes de cambios grandes.<\/p>\n<p>Una copia que restaura bien en staging es como una llave que has probado en la cerradura. No \u201cparece\u201d que abre. Abre.<\/p>\n<p><strong>Frecuencia recomendada de prueba:<\/strong> en ecommerce con ventas constantes, verifica restauraci\u00f3n al menos una vez al trimestre y siempre antes de migraciones o actualizaciones mayores. En tiendas peque\u00f1as, cada seis meses puede ser aceptable, aunque depender\u00e1 del riesgo asumible.<\/p>\n<\/section>\n<section id=\"restaurar\">\n<h2>7. C\u00f3mo restaurar un backup completo de PrestaShop \ud83e\uddef<\/h2>\n<p>Restaurar no es simplemente \u201csubir lo que baj\u00e9\u201d. Hay orden. Hay dependencias. Hay peque\u00f1os demonios con nombres como permisos, cach\u00e9, dominio, rutas y versi\u00f3n PHP.<\/p>\n<h3>Escenario habitual de restauraci\u00f3n<\/h3>\n<ol>\n<li>Preparas un servidor o entorno con versi\u00f3n compatible de PHP, extensiones necesarias y MySQL\/MariaDB.<\/li>\n<li>Subes el archivo comprimido de los archivos de PrestaShop.<\/li>\n<li>Descomprimes en el directorio correcto.<\/li>\n<li>Creas una base de datos vac\u00eda.<\/li>\n<li>Importas el dump SQL.<\/li>\n<li>Ajustas credenciales en <code>app\/config\/parameters.php<\/code> o <code>config\/settings.inc.php<\/code>.<\/li>\n<li>Revisas la tabla de URLs de tienda.<\/li>\n<li>Vac\u00edas cach\u00e9.<\/li>\n<li>Regeneras <code>.htaccess<\/code> si procede.<\/li>\n<li>Pruebas front office, back office, carrito, checkout, pago, emails, im\u00e1genes y facturas.<\/li>\n<\/ol>\n<h3>Restaurar archivos por SSH<\/h3>\n<pre><code>cd \/home\/usuario\/public_html\ntar -xzpf \/home\/usuario\/backups\/prestashop-archivos-2026-01-15.tar.gz<\/code><\/pre>\n<p>Si est\u00e1s restaurando sobre una carpeta existente, cuidado. Sobrescribir archivos en producci\u00f3n sin limpiar o sin copia previa puede dejar residuos de versiones anteriores. A veces conviene mover la carpeta antigua y desplegar en una nueva:<\/p>\n<pre><code>mv public_html public_html_antiguo\nmkdir public_html\ncd public_html\ntar -xzpf \/home\/usuario\/backups\/prestashop-archivos-2026-01-15.tar.gz<\/code><\/pre>\n<h3>Restaurar base de datos<\/h3>\n<p>Si el dump est\u00e1 comprimido:<\/p>\n<pre><code>gunzip -c \/home\/usuario\/backups\/prestashop-db-2026-01-15.sql.gz | mysql -u usuario_basedatos -p nombre_basedatos<\/code><\/pre>\n<p>Si no est\u00e1 comprimido:<\/p>\n<pre><code>mysql -u usuario_basedatos -p nombre_basedatos &lt; \/home\/usuario\/backups\/prestashop-db-2026-01-15.sql<\/code><\/pre>\n<h3>Actualizar dominio y ruta de la tienda<\/h3>\n<p>Si restauras en otro dominio, subdominio o carpeta, revisa la tabla <code>ps_shop_url<\/code>, teniendo en cuenta que el prefijo <code>ps_<\/code> puede ser distinto.<\/p>\n<pre><code>SELECT * FROM ps_shop_url;<\/code><\/pre>\n<p>Campos relevantes:<\/p>\n<ul>\n<li><code>domain<\/code>: dominio sin protocolo, por ejemplo <code>www.ejemplo.com<\/code>.<\/li>\n<li><code>domain_ssl<\/code>: dominio para HTTPS.<\/li>\n<li><code>physical_uri<\/code>: ruta f\u00edsica, por ejemplo <code>\/<\/code> o <code>\/tienda\/<\/code>.<\/li>\n<\/ul>\n<p>Ejemplo de actualizaci\u00f3n:<\/p>\n<pre><code>UPDATE ps_shop_url\nSET domain = 'staging.ejemplo.com',\n    domain_ssl = 'staging.ejemplo.com',\n    physical_uri = '\/'\nWHERE id_shop_url = 1;<\/code><\/pre>\n<h3>Vaciar cach\u00e9 despu\u00e9s de restaurar<\/h3>\n<p>En PrestaShop 1.7 y 8, puedes eliminar la cach\u00e9 manualmente:<\/p>\n<pre><code>rm -rf var\/cache\/prod\/*\nrm -rf var\/cache\/dev\/*<\/code><\/pre>\n<p>En instalaciones antiguas, la cach\u00e9 puede estar en <code>cache\/smarty\/compile<\/code>, <code>cache\/smarty\/cache<\/code> u otras rutas. Despu\u00e9s accede al back office y revisa <strong>Par\u00e1metros avanzados &gt; Rendimiento<\/strong> para limpiar cach\u00e9 desde la interfaz si est\u00e1 disponible.<\/p>\n<h3>Permisos de archivos<\/h3>\n<p>Los permisos dependen del hosting, usuario web y configuraci\u00f3n del servidor. Como orientaci\u00f3n com\u00fan:<\/p>\n<ul>\n<li>Directorios: <code>755<\/code> o <code>775<\/code> seg\u00fan entorno.<\/li>\n<li>Archivos: <code>644<\/code> o similar.<\/li>\n<li>Archivos sensibles de configuraci\u00f3n: permisos restrictivos siempre que el servidor lo permita.<\/li>\n<\/ul>\n<pre><code>find \/home\/usuario\/public_html -type d -exec chmod 755 {} \\;\nfind \/home\/usuario\/public_html -type f -exec chmod 644 {} \\;<\/code><\/pre>\n<p><strong>No apliques permisos a ciegas<\/strong> si tu hosting usa reglas espec\u00edficas, PHP-FPM con usuario dedicado, contenedores o despliegues con Git. La seguridad no consiste en memorizar n\u00fameros, sino en entender qui\u00e9n debe leer, escribir y ejecutar.<\/p>\n<\/section>\n<section id=\"automatizar\">\n<h2>8. Automatizar backups de PrestaShop: cron, retenci\u00f3n y copias externas \ud83e\udd16<\/h2>\n<p>El backup manual tiene un problema filos\u00f3fico: depende de que alguien se acuerde. Y la memoria humana, aunque entra\u00f1able, compite mal contra una tarea cron bien escrita. Automatizar no significa desentenderse; significa reducir el n\u00famero de ocasiones en que el azar participa en la administraci\u00f3n de tu ecommerce.<\/p>\n<h3>Regla 3-2-1 para ecommerce<\/h3>\n<p>La cl\u00e1sica regla <strong>3-2-1<\/strong> sigue siendo sensata:<\/p>\n<ul>\n<li><strong>3 copias<\/strong> de los datos importantes.<\/li>\n<li><strong>2 soportes o ubicaciones diferentes<\/strong>.<\/li>\n<li><strong>1 copia fuera del servidor principal<\/strong>, idealmente externa y cifrada.<\/li>\n<\/ul>\n<p>Guardar el backup dentro de <code>public_html<\/code> es una mala idea. Guardarlo sin cifrar y con nombre evidente, peor. Hay historias de terror en las que un atacante no solo roba la tienda, sino tambi\u00e9n el archivo <code>backup_tienda_final_ahora_si.zip<\/code>. La humanidad no aprende, pero al menos nombra sus desastres con ternura.<\/p>\n<h3>Ejemplo de script b\u00e1sico de backup<\/h3>\n<p>Este ejemplo crea copia de archivos y base de datos, comprime, conserva unos d\u00edas y guarda fuera del directorio p\u00fablico. Debes adaptarlo a tus rutas y credenciales. Para no escribir la contrase\u00f1a dentro del script, puedes usar un archivo <code>~\/.my.cnf<\/code> protegido.<\/p>\n<pre><code>#!\/bin\/bash\n\nFECHA=$(date +%F-%H%M)\nROOT=\"\/home\/usuario\/public_html\"\nBACKUP_DIR=\"\/home\/usuario\/backups\"\nDB_NAME=\"nombre_basedatos\"\nDB_USER=\"usuario_basedatos\"\n\nmkdir -p \"$BACKUP_DIR\"\n\ntar --exclude=\"$ROOT\/var\/cache\/*\" \\\n    --exclude=\"$ROOT\/var\/logs\/*\" \\\n    -czpf \"$BACKUP_DIR\/prestashop-archivos-$FECHA.tar.gz\" \\\n    -C \"$ROOT\" .\n\nmysqldump --single-transaction \\\n          --quick \\\n          --routines \\\n          --triggers \\\n          --events \\\n          --default-character-set=utf8mb4 \\\n          -u \"$DB_USER\" \\\n          -p \\\n          \"$DB_NAME\" | gzip &gt; \"$BACKUP_DIR\/prestashop-db-$FECHA.sql.gz\"\n\nsha256sum \"$BACKUP_DIR\/prestashop-archivos-$FECHA.tar.gz\" &gt; \"$BACKUP_DIR\/prestashop-archivos-$FECHA.sha256\"\nsha256sum \"$BACKUP_DIR\/prestashop-db-$FECHA.sql.gz\" &gt; \"$BACKUP_DIR\/prestashop-db-$FECHA.sha256\"\n\nfind \"$BACKUP_DIR\" -type f -mtime +14 -name \"prestashop-*\" -delete<\/code><\/pre>\n<h3>Usar ~\/.my.cnf para evitar contrase\u00f1as en comandos<\/h3>\n<p>Crea un archivo en el usuario del sistema:<\/p>\n<pre><code>nano ~\/.my.cnf<\/code><\/pre>\n<p>Contenido:<\/p>\n<pre><code>[client]\nuser=usuario_basedatos\npassword=contrase\u00f1a_basedatos\nhost=localhost<\/code><\/pre>\n<p>Protege el archivo:<\/p>\n<pre><code>chmod 600 ~\/.my.cnf<\/code><\/pre>\n<p>Entonces puedes ejecutar:<\/p>\n<pre><code>mysqldump --single-transaction --quick --routines --triggers --events nombre_basedatos | gzip &gt; backup.sql.gz<\/code><\/pre>\n<h3>Programar con cron<\/h3>\n<p>Ejemplo para ejecutar cada madrugada a las 03:30:<\/p>\n<pre><code>30 3 * * * \/home\/usuario\/scripts\/backup-prestashop.sh &gt;&gt; \/home\/usuario\/backups\/backup.log 2&gt;&amp;1<\/code><\/pre>\n<h3>Frecuencia recomendada<\/h3>\n<table>\n<thead>\n<tr>\n<th>Tipo de tienda<\/th>\n<th>Base de datos<\/th>\n<th>Archivos<\/th>\n<th>Notas<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tienda peque\u00f1a con pocos cambios<\/td>\n<td>Diaria<\/td>\n<td>Semanal o antes de cambios<\/td>\n<td>Si hay pedidos diarios, la base debe copiarse a diario como m\u00ednimo.<\/td>\n<\/tr>\n<tr>\n<td>Tienda con ventas regulares<\/td>\n<td>Cada 6-12 horas<\/td>\n<td>Diaria<\/td>\n<td>Especial atenci\u00f3n a m\u00f3dulos de pago, stock e integraciones.<\/td>\n<\/tr>\n<tr>\n<td>Ecommerce con alto volumen<\/td>\n<td>Cada hora o replicaci\u00f3n\/PITR<\/td>\n<td>Diaria y antes de despliegues<\/td>\n<td>Valorar snapshots, replicaci\u00f3n y recuperaci\u00f3n punto en el tiempo.<\/td>\n<\/tr>\n<tr>\n<td>Antes de actualizar PrestaShop<\/td>\n<td>Inmediata<\/td>\n<td>Inmediata<\/td>\n<td>Backup completo descargado y verificado antes de tocar nada.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Cifrado de backups<\/h3>\n<p>Un backup de PrestaShop puede contener datos personales: nombres, emails, direcciones, tel\u00e9fonos, pedidos, identificadores fiscales seg\u00fan pa\u00eds y configuraci\u00f3n. Bajo normativas como el RGPD, no es un souvenir t\u00e9cnico; es informaci\u00f3n sensible. Cifrar las copias externas es una pr\u00e1ctica prudente.<\/p>\n<p>Ejemplo con <code>gpg<\/code>:<\/p>\n<pre><code>gpg -c --cipher-algo AES256 prestashop-db-2026-01-15.sql.gz<\/code><\/pre>\n<p>Ejemplo con <code>openssl<\/code>:<\/p>\n<pre><code>openssl enc -aes-256-cbc -salt -pbkdf2 \\\n-in prestashop-archivos-2026-01-15.tar.gz \\\n-out prestashop-archivos-2026-01-15.tar.gz.enc<\/code><\/pre>\n<p><strong>Importante:<\/strong> si cifras backups, guarda la clave o frase de paso en un gestor seguro. Perder la clave convierte tu copia en una piedra elegante. Muy segura, s\u00ed. Tambi\u00e9n in\u00fatil.<\/p>\n<h3>D\u00f3nde guardar las copias externas<\/h3>\n<ul>\n<li>Almacenamiento S3 compatible: Amazon S3, Wasabi, Backblaze B2, Cloudflare R2.<\/li>\n<li>Google Drive, OneDrive o Dropbox mediante herramientas como <code>rclone<\/code>.<\/li>\n<li>Servidor externo por SFTP o rsync.<\/li>\n<li>Sistema profesional de backup del hosting, siempre con restauraciones probadas.<\/li>\n<\/ul>\n<p>No basta con que exista una copia. Debe estar fuera del servidor principal. Si un malware cifra tu hosting y tus backups viven en el mismo lugar, habr\u00e1s guardado el extintor dentro del incendio.<\/p>\n<\/section>\n<section id=\"errores\">\n<h2>9. Errores frecuentes al hacer copias de seguridad en PrestaShop \ud83d\udeab<\/h2>\n<h3>Copiar solo la base de datos<\/h3>\n<p>Sirve para parte de la recuperaci\u00f3n, pero no conserva m\u00f3dulos, temas, im\u00e1genes ni archivos personalizados. Es el error m\u00e1s com\u00fan y uno de los m\u00e1s caros.<\/p>\n<h3>Olvidar archivos ocultos<\/h3>\n<p>El archivo <code>.htaccess<\/code> puede contener reglas esenciales de URL amigables, redirecciones y par\u00e1metros de seguridad. Algunos clientes FTP no lo muestran por defecto.<\/p>\n<h3>Guardar backups en carpeta p\u00fablica<\/h3>\n<p>Un archivo <code>.zip<\/code> accesible desde navegador puede exponer toda la tienda. Nunca almacenes copias en <code>public_html<\/code> sin protecci\u00f3n real.<\/p>\n<h3>No probar la restauraci\u00f3n<\/h3>\n<p>El backup que nunca se restaura es una superstici\u00f3n con extensi\u00f3n <code>.tar.gz<\/code>. Verifica, aunque sea en staging.<\/p>\n<h3>Ignorar la multitienda<\/h3>\n<p>En PrestaShop multitienda, dominios, rutas, configuraciones por tienda y datos compartidos exigen especial cuidado. Revisa <code>ps_shop<\/code> y <code>ps_shop_url<\/code>.<\/p>\n<h3>No coordinar con integraciones externas<\/h3>\n<p>ERP, marketplaces, pasarelas de pago y transportistas pueden seguir enviando datos durante el backup. En tiendas complejas, planifica la ventana de copia.<\/p>\n<h3>Errores m\u00e1s sutiles<\/h3>\n<ul>\n<li><strong>Exportar con codificaci\u00f3n incorrecta:<\/strong> puede provocar caracteres rotos en nombres, direcciones o descripciones.<\/li>\n<li><strong>No incluir triggers o rutinas:<\/strong> raro en tiendas est\u00e1ndar, pero posible en desarrollos personalizados.<\/li>\n<li><strong>Descargar por FTP sin revisar transferencias fallidas:<\/strong> una carpeta incompleta puede parecer correcta hasta que faltan im\u00e1genes o m\u00f3dulos.<\/li>\n<li><strong>Restaurar sobre una versi\u00f3n PHP incompatible:<\/strong> PrestaShop 1.6, 1.7 y 8 tienen requisitos distintos. El servidor tambi\u00e9n forma parte del ecosistema.<\/li>\n<li><strong>No documentar cambios manuales:<\/strong> ajustes en <code>php.ini<\/code>, cron jobs, reglas Nginx, workers o certificados SSL pueden quedar fuera del backup.<\/li>\n<li><strong>Conservar demasiadas copias con datos personales:<\/strong> la retenci\u00f3n debe equilibrar seguridad operativa y obligaciones legales.<\/li>\n<\/ul>\n<\/section>\n<section id=\"seguridad\">\n<h2>10. Seguridad, privacidad y cumplimiento: el backup tambi\u00e9n puede ser una fuga de datos \ud83d\udd10<\/h2>\n<p>Un backup completo de PrestaShop suele contener datos personales. Aunque PrestaShop no deber\u00eda almacenar datos completos de tarjetas si usas pasarelas externas correctamente configuradas, s\u00ed puede incluir informaci\u00f3n sensible de clientes y pedidos. Eso exige controles.<\/p>\n<h3>Buenas pr\u00e1cticas de seguridad<\/h3>\n<ul>\n<li>Cifra las copias almacenadas fuera del servidor.<\/li>\n<li>Limita el acceso a backups solo a personal autorizado.<\/li>\n<li>Usa contrase\u00f1as fuertes y autenticaci\u00f3n multifactor en paneles de hosting y almacenamiento externo.<\/li>\n<li>No env\u00edes backups completos por email.<\/li>\n<li>Define una pol\u00edtica de retenci\u00f3n: por ejemplo, diarios 14 d\u00edas, semanales 8 semanas, mensuales 6-12 meses.<\/li>\n<li>Registra qui\u00e9n accede a las copias y cu\u00e1ndo, si el entorno lo requiere.<\/li>\n<li>Elimina backups antiguos de forma segura.<\/li>\n<li>Revisa contratos y encargos de tratamiento si terceros gestionan copias con datos personales.<\/li>\n<\/ul>\n<p>Hay una ant\u00edtesis inevitable: el backup es protecci\u00f3n y riesgo al mismo tiempo. Te salva de perder datos, pero tambi\u00e9n concentra esos datos en un paquete transportable. Es una b\u00f3veda; si la dejas abierta, es una invitaci\u00f3n.<\/p>\n<\/section>\n<section id=\"prestashop-actualizaciones\">\n<h2>11. Backup antes de actualizar PrestaShop o m\u00f3dulos: ritual breve, beneficio enorme \ud83e\uddea<\/h2>\n<p>Actualizar PrestaShop, cambiar de tema o instalar m\u00f3dulos puede mejorar seguridad y rendimiento. Tambi\u00e9n puede romper compatibilidades con la elegancia de una copa cayendo en una cena silenciosa. Antes de tocar una tienda en producci\u00f3n, prepara una copia completa.<\/p>\n<h3>Secuencia profesional antes de cambios importantes<\/h3>\n<ol>\n<li>Activar modo mantenimiento o programar ventana de baja actividad.<\/li>\n<li>Hacer backup completo de archivos.<\/li>\n<li>Hacer backup completo de base de datos.<\/li>\n<li>Descargar copias fuera del servidor.<\/li>\n<li>Verificar integridad de archivos comprimidos.<\/li>\n<li>Restaurar en staging si el cambio es relevante.<\/li>\n<li>Aplicar actualizaci\u00f3n en staging.<\/li>\n<li>Probar checkout, pagos, transportistas, emails, impuestos, stock, im\u00e1genes, b\u00fasqueda y SEO.<\/li>\n<li>Solo entonces repetir en producci\u00f3n.<\/li>\n<\/ol>\n<p>Un peque\u00f1o rodeo, s\u00ed. Pero la l\u00ednea recta hacia el desastre siempre ha sido muy eficiente.<\/p>\n<\/section>\n<section id=\"wp-cli-comparacion\">\n<h2>12. Una breve digresi\u00f3n: el backup no es glamour, pero es cultura t\u00e9cnica \u2615<\/h2>\n<p>Una vez vi a un due\u00f1o de tienda celebrar el redise\u00f1o de su ecommerce con una tarta. No era una tienda enorme, pero vend\u00eda bien. Hab\u00eda globos, caf\u00e9 malo de oficina y una alegr\u00eda honesta, de esas que no necesitan m\u00e9tricas. Tres d\u00edas despu\u00e9s, un m\u00f3dulo de filtro por facetas dej\u00f3 la tienda en blanco. Nadie hab\u00eda hecho backup. La tarta, record\u00e9moslo, s\u00ed estaba fotografiada desde seis \u00e1ngulos.<\/p>\n<p>No cuento esto para burlarme. Bueno, quiz\u00e1 un poco; la iron\u00eda tambi\u00e9n tiene su funci\u00f3n pedag\u00f3gica. Lo cuento porque la cultura t\u00e9cnica de un negocio no se mide solo en dise\u00f1os bonitos o campa\u00f1as de Black Friday, sino en la capacidad de volver a ponerse en pie cuando algo falla. La resiliencia no se anuncia en un banner. Se prepara en silencio.<\/p>\n<\/section>\n<section id=\"comandos-rapidos\">\n<h2>13. Receta r\u00e1pida para usuarios con SSH \u26a1<\/h2>\n<p>Si ya sabes lo que haces y necesitas una secuencia compacta, aqu\u00ed tienes una versi\u00f3n resumida. Sustituye rutas, usuario y base de datos por los tuyos.<\/p>\n<pre><code>mkdir -p \/home\/usuario\/backups\n\ncd \/home\/usuario\/public_html\n\ntar --exclude='.\/var\/cache\/*' \\\n    --exclude='.\/var\/logs\/*' \\\n    -czpf \/home\/usuario\/backups\/prestashop-archivos-$(date +%F).tar.gz .\n\nmysqldump --single-transaction \\\n          --quick \\\n          --routines \\\n          --triggers \\\n          --events \\\n          --default-character-set=utf8mb4 \\\n          -u usuario_basedatos \\\n          -p nombre_basedatos | gzip &gt; \/home\/usuario\/backups\/prestashop-db-$(date +%F).sql.gz\n\ngzip -t \/home\/usuario\/backups\/prestashop-db-$(date +%F).sql.gz\ntar -tzf \/home\/usuario\/backups\/prestashop-archivos-$(date +%F).tar.gz | head<\/code><\/pre>\n<p><strong>Recuerda:<\/strong> esta receta no sustituye una estrategia completa. Sirve para una copia puntual. Para un entorno profesional necesitas automatizaci\u00f3n, copias externas, cifrado, retenci\u00f3n y pruebas de restauraci\u00f3n.<\/p>\n<\/section>\n<section id=\"faq\">\n<h2>Preguntas frecuentes sobre backups en PrestaShop \u2753<\/h2>\n<h3>\u00bfCada cu\u00e1nto debo hacer una copia de seguridad de PrestaShop?<\/h3>\n<p>Depende del ritmo de cambios. Si recibes pedidos a diario, la base de datos deber\u00eda copiarse al menos una vez al d\u00eda. En tiendas con mucho volumen, cada hora o mediante soluciones de recuperaci\u00f3n punto en el tiempo. Los archivos pueden copiarse diariamente o cada vez que cambien m\u00f3dulos, tema, im\u00e1genes o c\u00f3digo.<\/p>\n<h3>\u00bfPuedo hacer backup solo desde el panel de administraci\u00f3n?<\/h3>\n<p>Puedes exportar la base de datos desde el back office en algunas versiones, pero eso no incluye archivos. Para una copia completa necesitas tambi\u00e9n descargar o comprimir el directorio de PrestaShop.<\/p>\n<h3>\u00bfQu\u00e9 pesa m\u00e1s: archivos o base de datos?<\/h3>\n<p>Normalmente los archivos pesan m\u00e1s por las im\u00e1genes de producto, temas, m\u00f3dulos y archivos descargables. La base de datos puede crecer mucho si hay miles de pedidos, logs de m\u00f3dulos, carritos antiguos, estad\u00edsticas o integraciones que almacenan informaci\u00f3n adicional.<\/p>\n<h3>\u00bfDebo copiar la cach\u00e9?<\/h3>\n<p>No es imprescindible para restaurar, porque PrestaShop puede regenerarla. Excluir <code>var\/cache<\/code> reduce tama\u00f1o y evita arrastrar archivos temporales. Aun as\u00ed, si buscas una instant\u00e1nea absolutamente literal del servidor, puedes incluirla.<\/p>\n<h3>\u00bfQu\u00e9 hago si phpMyAdmin falla al exportar?<\/h3>\n<p>Usa <code>mysqldump<\/code> por SSH, solicita al hosting una exportaci\u00f3n desde consola o utiliza herramientas espec\u00edficas para bases grandes. phpMyAdmin no es ideal para dumps pesados.<\/p>\n<h3>\u00bfD\u00f3nde est\u00e1n los datos de conexi\u00f3n de la base de datos?<\/h3>\n<p>En PrestaShop 1.7 y superiores, normalmente en <code>app\/config\/parameters.php<\/code>. En PrestaShop 1.6, en <code>config\/settings.inc.php<\/code>.<\/p>\n<h3>\u00bfUn snapshot del hosting sustituye mi backup manual?<\/h3>\n<p>Puede ser parte de la estrategia, pero no deber\u00eda ser la \u00fanica. Necesitas acceso real a la copia, posibilidad de descargarla, conocer su frecuencia y haber probado restauraciones. El backup que controla exclusivamente un tercero puede ser suficiente hasta el d\u00eda en que necesitas algo m\u00e1s preciso.<\/p>\n<h3>\u00bfQu\u00e9 debo probar despu\u00e9s de restaurar?<\/h3>\n<p>Back office, front office, im\u00e1genes, carrito, checkout, m\u00e9todo de pago, transportistas, impuestos, correos, facturas, URLs amigables, b\u00fasqueda, m\u00f3dulos cr\u00edticos, rendimiento y logs de error. Una tienda restaurada que no puede cobrar pedidos todav\u00eda no est\u00e1 restaurada del todo.<\/p>\n<\/section>\n<section id=\"lista-final\">\n<h2>Lista maestra para un backup completo de PrestaShop \u2705<\/h2>\n<ul>\n<li>Modo mantenimiento activado si hay riesgo de cambios durante la copia.<\/li>\n<li>Archivos comprimidos desde el directorio ra\u00edz correcto.<\/li>\n<li>Incluidos <code>\/img<\/code>, <code>\/modules<\/code>, <code>\/themes<\/code>, <code>\/override<\/code>, <code>\/download<\/code>, <code>\/upload<\/code> y archivos ocultos.<\/li>\n<li>Base de datos exportada con <code>mysqldump<\/code>, phpMyAdmin o herramienta fiable del hosting.<\/li>\n<li>Codificaci\u00f3n compatible, preferiblemente <code>utf8mb4<\/code>.<\/li>\n<li>Dump SQL comprimido y comprobado.<\/li>\n<li>Checksum generado para verificar integridad.<\/li>\n<li>Copia descargada fuera del servidor principal.<\/li>\n<li>Copia externa cifrada si contiene datos personales.<\/li>\n<li>Retenci\u00f3n definida y eliminaci\u00f3n de copias antiguas.<\/li>\n<li>Restauraci\u00f3n probada en staging peri\u00f3dicamente.<\/li>\n<li>Documentaci\u00f3n de PHP, MySQL\/MariaDB, cron jobs, m\u00f3dulos cr\u00edticos y configuraci\u00f3n especial.<\/li>\n<\/ul>\n<\/section>\n<h2>Cierre operativo: tu tienda no necesita fe, necesita una copia restaurable \ud83e\uddf0<\/h2>\n<p>Hacer un <strong>backup completo de PrestaShop<\/strong> no es una tarea decorativa. Es una forma de continuidad empresarial. La tienda visible \u2014sus banners, productos y botones de compra\u2014 es apenas la superficie; debajo hay una maquinaria de archivos y tablas que debe conservarse con m\u00e9todo.<\/p>\n<p>La diferencia entre una crisis y una an\u00e9cdota suele caber en dos archivos: un <code>.tar.gz<\/code> con los archivos y un <code>.sql.gz<\/code> con la base de datos. Pero no basta con crearlos. Hay que protegerlos, sacarlos del servidor, cifrarlos cuando corresponde y probar que vuelven a la vida. Porque un ecommerce, al final, no se mide solo por lo que vende cuando todo va bien, sino por la serenidad con la que puede levantarse cuando algo se rompe.<\/p>\n<p>Y se romper\u00e1 algo. No por pesimismo, sino por experiencia. La tecnolog\u00eda, como el mar, parece tranquila justo antes de recordarte qui\u00e9n manda. \ud83c\udf0a<\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo hacer un backup completo en PrestaShop? Archivos, base de datos y sentido com\u00fan antes<\/p>\n","protected":false},"author":1,"featured_media":3696,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-3697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mantenimiento"],"_links":{"self":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/comments?post=3697"}],"version-history":[{"count":1,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3697\/revisions"}],"predecessor-version":[{"id":3698,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3697\/revisions\/3698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media\/3696"}],"wp:attachment":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media?parent=3697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/categories?post=3697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/tags?post=3697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}