migrar prestashop 1.5 de un servidor a otro

Cómo copiar una tienda on line prestashop a un servidor local.

Opción A

El objetivo de este post es tener una guía detallada de cómo copiar toda una tienda on line hecha en prestashop a un ordenador local.  Esto es muy interesante si necesitas cambiar la programación o probar nuevos módulos y evitar hacerlo todo en vivo y en directo.

Para migrar Prestashop 1.5 de servidor, desde un servidor de producción a uno local para modificarlo o programarlo, además de subir todos los archivos al servidor nuevo, necesitas crear una base de datos. La forma de hacer esto varía dependiendo de tu hosting. Pero los pasos para migrar Prestashop de servidor son los siguientes (tomado de un post de Victor Ródenas):

1) Hacer un backup de tu tienda
2) Hacer un backup de tu base de datos
3) Conectarte al ftp en tu nuevo servidor y subir el backup de la tienda
4) Crear la base de datos en el panel de tu hosting, con el usuario asociado y importar la base de datos de la cual has realizado un backup antes.
4) Modificar fichero /config/settings.inc.php para restablecer los datos de conexión a la base de datos.
5) Vaciar la carpeta /tools/smarty/compile y /tools/smarty/cache para curarnos en salud.

hasta aquí la receta oficial. De mi cosecha experimental pegada al terreno te añado  un 6º paso absolutamente crítico:

6) entra en el backoffice, vete a preferencias y luego SEO y url’s y genera un nuevo robots.txt  revista las URL asegurandote de Guardar los cambios.  (vas a sufrir mucho si no haces esto)

 

 

  • Paso 1:

    Copiar los archivos que se encuentran en el servidor de origen (local en este caso) al servidor web. Normalmente por FTP aunque yo uso el explorador de archivos de cpanel

  • también verifica en XAMPP (Instalación local para prestashop) que tienes configurado el protocolo SSL que es para transacciones seguras:

     http://localhost y mira el menu lateral php

  • Edita el archivo php.ini.  ¿Dónde está este archivo?.  Igual que antes, dependerá de dónde se ha instalado XAMPP. Si no has tocado nada está en C:\xampp\php
  • Cambia ligeramente de una versión de XAMPP a otra pero la clave es que “descomentes” la linea referente a php_openssl
  • En versiones anteriores tenías que buscar la línea “;extension=php_curl.dll” y dejarla como “extension=php_curl.dll” En mi caso he habilitado la linea “extension=php_openssl.dll”
  • Si has tenido que habilitar el OpenSSL deberás Reiniciar Apache en los Servicios del Panel de Control de tu Windows:
  • Paso 2:

    Editar el archivo settings.inc.php que se encuentra en la carpeta Config. Hay que cambiar los datos de conexión para poner los de la nueva base de datos, Servidor (_DB_SERVER_), Nombre de la base de datos (_DB_NAME_), Usuario (_DB_USER_) y Contraseña (_DB_PASSWD_).

settings.inc.php - Prestashop 1.5

  • Paso 3:

    Exportar la base de datos. Esto depende del hosting, pero en muchos se usa phpmyadmin: 1. Pestaña Exportar

Exportar Base de Datos - Php My Admin 2. Marcar “Enviar (genera un archivo descargable)” y pinchar el botón “Continuar” para descargar el archivo de texto con todo el contenido de la base de datos.Generar un archivo descargable - PhpMyAdmin 3. Aquí tenemos el archivo descargado: BaseDeDatos

  • Paso 4:

    Editar el archivo copia de la Base de Datos, que tendrá normalmente la extensión “sql”  con un editor de textos:

  1. Buscar: ‘PS_SHOP_DOMAIN’ y reemplazar la URL Local por la de tu servidor web.
  2. Buscar: ‘PS_SHOP_DOMAIN_SSL’ y hacer lo mismo.Editar Base de Datos - Archivo SQL
  3. Si tenemos Prestashop en una subcarpeta como por ejemplo: “localhost/prestashop/” tenemos que buscarlo en el archivo y reemplazarlo por la otra carpeta o “/” si está en el directorio raíz.Reemplazar URLURL ReemplazadaSubdirectorio /
  4. Además, hay que cambiar actualizar la contraseña del administrador. Para esto tenemos que:
  • Copiar la clave que está en el archivo settings.inc.php en la línea donde se encuentra ‘_COOKIE_KEY_’.Cookie key
  • Incluir nuestra nueva clave al final, como se muestra en la imagen: Cookie key con contraseña
  • Copiar toda la clave y pegarla en: http://www.md5.net/ para convertir la cadena en una clave md5 que necesitamos para insertarla en la base de datos. Generar clave MD5
  • Copiar la clave md5 que hemos generado y pegarla en nuestro archivo SQL, buscando la tabla PS_EMPLOYEE. Guardar en el archivo SQL
  • Guardar el archivo para poder importarlo en el siguiente paso.

 

  • Paso 5:

    Importar el archivo a la nueva Base de Datos: 1. Pestaña Importar:

Importar Datos - PhpMyAdmin 2. Seleccionar archivo y clickear en el botón “Continuar”: Cargar Archivo 3. Base de datos importada satisfactoriamente:

 

Por ultimo exporta el tema de prestashop (la plantilla) y las traducciones e importalos desde el backoffice del prestashop en producción

 

Opción B.

Para instalar un prestashop en una web en produccion a local para cambiar o reparar lo que sea sigue estos pasos:

1. Crear una base de datos desde la administración local de phpMyAdmin (http://localhost/phpmyadmin): Pestaña Bases de Datos y rellenar el formulario que sale de Crear.

2. Descargar Prestashop.

3. Instalar prestashop en local.

– Para esto hay que ir al directorio de instalación de Xampp (normalmente en windows es c:\xampp) acceder al directorio htdocs (c:\xampp\htdocs) y crear una carpeta con el nombre de nuestra tienda por ejemplo “mitienda” (c:\xampp\htdocs\mitienda).

– Copiar los archivos descomprimidos descargados de Prestashop.

– Acceder a http://localhost/mitienda (porque es el nombre de la carpeta)

– Realizar la instalación normal de prestashop.

– Acceder a la tienda para comprobar que todo está ok y al back office igual.
4. Crear una copia de la base de datos que tenemos on-line. Entramos en phpMyAdmin de nuestro alojamiento, vamos a Importar y lo seleccionamos todo.

– Hay que seleccionar la base de datos, ir a Exportar y marcar Personalizada.

– En las opciones que ofrece dejarlas todas tal como salen, pero marcar

“Agregar sentencia DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT”

– En compresión marcar gzip para que ocupe menos.
5. Desde el back office de nuestra tienda: Herramientas -> Traducciones, importamos todas las traducciones.

6. Descargar via FTP las carpetas:

– mails

– modules: Aquí hay 2 opciones, o copiarla entera, o sólo aquellos que hemos modificado.

– themes/nuestrotema : Copiar la carpeta del tema que usemos.

– upload y download

– img

7. Si tenemos algún override de Classes o Módulos o lo que sea, descargar también.

8. Copiar todo lo descargado a nuestra instalación local de prestashop.

9. Entrar a phpmyadmin local, acceder a la base de datos y borrar todas las tablas.

10. Desde aquí realizamos Importamos la base de datos que hemos descargado de la web on-line.

– Si nuestra base de datos es muy grande no podremos importar directamente, pero podemos usar BigDump (Descargar aquí) que permite importaciones de ficheros grandes.

– Dejo manual de uso de bigdump: http://www.forosdelw…bigdump-376908/
11. Ya queda poco…

– Accedemos al php local -> A la base de datos -> Tabla ps_configuration

– Buscamos los registros “PS_BASE_URI” y “PS_BASE_URI_SSL” (en mi caso las id 160 y 161) y los cambiamos por: localhost
12. Penúltimo paso:

– Abrir el fichero config/settings.inc.php de nuestra instalación local y copiar la clave que pone en el valor “_COOKIE_KEY_”:

 

define('_COOKIE_KEY_', 'RKPAJm6v0KaoR8cMFmX6kohmEf8e2LJmRRVtUTuHAs6UrvERFkwE3crh');

 

En este caso hay que copiar ‘RKPAJm6v0KaoR8cMFmX6kohmEf8e2LJmRRVtUTuHAs6UrvERFkwE3crh’

 

– Accedemos al php local -> A la base de datos -> Tabla ps_employee

– Editamos el usuario administrador -> En el campo password pegamos el código que hemos copiado de la Cookie key y a continuación sin espacios ni nada escribimos el password que queremos, por ejemplo:

RKPAJm6v0KaoR8cMFmX6kohmEf8e2LJmRRVtUTuHAs6UrvERFkwE3crhPASSWORDMOLON123

– Antes de guardar, justo en la columna de izquierda “Función” seleccionamos “md5” y guardamos.
13. El último paso es el más sencillo… disfrutar de vuestra tienda en local.

13 Bis: Se ha detectado algun problema con los permisos del fichero settings.inc.php, si se os queda la pantalla en blanco, dar permisos de lectura y escritura a este fichero. 

CategoríasSin categoría

6 opiniones en “migrar prestashop 1.5 de un servidor a otro”

    1. No te sirve. Creo que hablas de las copias de seguridad del backoffice de prestashop. Son copias “propias”, no contienen toda la información necesaria. Pero siempre puedes probar a ver qué es lo que puedes recuperar 🙂

  1. Hola, estoy migrando la web a un nuevo hosting (para actualizar prestashop) mientras sigue funcionando la real, y después de hacer varios cambios de configuración, ya puedo entrar, y veo parte de la web, pero en el back office, me salen todas las pestañas vacias, y he revisado el enlace a la base de datos, alguien me puede ayudar? gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *