Descuento 20% Diciembre
Plugin Optimización de Imágenes Gratuito para WordPress
Sábado, 23 Septiembre 2017 10:00

Clonar PrestaShop a otra carpeta del Hosting

Escrito por 
CMS:  PrestaShop |  Versión:  1.6.1.x |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  20 minutos


clonar PrestaShop


Son muchas las ocasiones en las que el administrador de una Tienda se enfrenta a la necesidad de saber Cómo clonar una Tienda PrestaShop para evaluar el comportamiento de cambios de módulos a otros "hooks", prueba de módulos nuevos ¡que no tiene claro si son compatibles con su versión del CMS!, o una simple actualización u optimización y le surgen mil dudas y preguntas antes de hacerlo ¿funcionará, tendré problemas posteriores, quedará inoperativa la tienda?

Seguro que te has visto en esas tesituras muchas veces y al final has optado por no realizar la tarea, o llevarla a cabo y asumir las posibles consecuencias o daños colaterales de actualizar, probar un módulo de dudosa procedencia que prometía hacer lo que necesitabas para mejorar la Tienda, o perder cambios por actualizar a una versión posterior.

Es en estos casos cuando la opción de "duplicar" o "clonar" la instalación de la Tienda en producción se convierten en una alternativa más que recomendada, pues te va a permitir evaluar esos cambios sin dejar de dar servicio y decidir si realmente valdría la pena hacerlos, pero en un sandbox o "instalación secundaria" donde no temas perder nada. ¿Quieres clonar PrestaShop?, sigue leyendo...

 

 Este proceso de CLONACIÓN de PrestaShop solo es válido para la rama 1.6.x, pero no sirve para instalaciones de PrestaShop 1.7.x

     

 Clonando PrestaShop 1.6.x ¡Procedimiento!

El proceso para duplicar PrestaShop a otra carpeta, de forma resumida sería el siguiente. Seguirlo paso por paso te garantizará el correcto funcionamiento de la web duplicada.

  1. Copia de Seguridad de la web completa + base de datos.
  2. Accede al Panel de Hosting (cPanel), Archivos, Administrador de Archivos.
  3. Navega a la carpeta donde esté la instalación de PrestaShop, por ejemplo: /public_html.
  4. Selecciona todos los archivos con la opción de cPanel (icono superior) "Seleccionar todo".
  5. Haz clic en el icono superior "Copiar".
  6. Se abrirá una ventana modal y abajo en la ruta, añadir al final de la ruta /public_html/nombre_carpeta_clon.
  7. Haz clic en Copiar Archivos (Copy Files).
  8. Clic en Subir un nivel (icono superior) para ver la carpeta /public_html
  9. Localiza la nueva carpeta creada y accede a ella para verificar que están los contenidos copiados.
  10. Revisa el archivo .htaccess (utiliza el Editor de Código) para comprobar que las rutas que contenga este archivo apuntan ahora a /public_html/nombre_carpeta_clon.
  11. Desde cPanel, Base de Datos, haz clic en phpMyAdmin.
  12. Localiza la base de datos de la instalación de PrestaShop en producción y haz clic en "Exportar".
  13. Guardar en el ordenador la copia .sql exportada de la base de datos.
  14. Desde cPanel, Base de Datos, "crea una nueva base de datos" (Tutorial).(1)
  15. Desde cPanel, Base de Datos, haz clic en phpMyAdmin.
  16. Haz clic en la opción superior "Importar" de phpMyAdmin para importar la base de datos descargada en tu ordenador.
  17. Desde tu cPanel, Archivos, Administrador de Archivos, accede a la carpeta /public_html/nombre_carpeta_clon/config (o donde tengas el clon de PrestaShop)
  18. Edita el archivo settings.inc.php y modifica los valores de las variables de la base de datos. (2)
  19. Guarda los cambios del archivo settings.inc.php.
  20. Accede al Back Office del clon para modificar las rutas. Puedes seguir este artículo.
  21. Si usas SSL en la tienda en producción, desactiva esta funcionalidad en el clon ¡no es necesaria!
  22. Una vez cambiadas las rutas del clon en el backoffice y regenerado .htaccess, verifica la carga de la web clonada.

Puede que te parezca que son muchos los pasos a seguir, pero si los analizas detalladamente verás que es un proceso natural, teniendo en cuenta que el staging en PrestaShop no disfruta de muchas herramientas en la actualidad.

 

 Ajustando la conexión de la base de datos

Cuando se realiza un duplicado de la tienda se debe crear una base de datos específica para esta tienda clonada. ¡No sirve utilizar la misma base de datos que la tienda en producción! de hacerlo estarías aplicando los cambios que hagas en el clon también en la tienda online que es visible por tus compradores.

Partiendo de la base de que ya creaste la base de datos e importaste el archivo .sql de la web original a la base de datos del clon, tienes que ajustar ahora los datos en las configuraciones de la tienda duplicada.

Los datos de Nombre de Base de Datos, Usuario de Base de Datos y Contraseña de Base de Datos que generes cuando creas la base de datos anótalos, pues son los que debes indicar en el archivo de configuración posteriormente.

El Host (hospedaje) es siempre localhost (en Webempresa).

Sustituye los valores de la base de datos por los de la nueva que has creado para el clon.

define('_DB_NAME_', 'NUEVA-BASE-DATOS');
define('_DB_USER_', 'NUEVO-USUARIO-BASE-DATOS');
define('_DB_PASSWD_', 'NUEVA-CONTRASEÑA-BASE-DATOS');
   

 Cambiando el nombre de la Tienda

Cambia el Nombre de la Tienda de la web clonada para no confundirla con la Tienda en producción.

Sería interesante que llegado a este punto te planteases el gestionar la web clonada desde un subdominio, de forma que diferencies con mayor claridad cuando estás trabajando en la web clonada y cuando en la web en producción. Por ejemplo:

clon.tu-dominio.com

Esto implica crear primero el subdominio "clon" y asociarlo a la carpeta de la web clonada.

 

 Otros ajustes de la web clonada

Otra cuestión que debes tener presente es la importancia de crear el clon fuera de la carpeta de la tienda en producción.

  • No recomendable: /public_html/dominio.com-de-la-tienda/clon
  • Recomendable: /public_html/clon

De esta forma además de separar una de otra y así poder gestionarlas mejor, si haces copias de seguridad parciales, solo de carpetas como por ejemplo /public_html/dominio.com-de-la-tienda/ no estás arrastrando dentro de esa copia de seguridad la web contenida en la carpeta /clon pues esto provocaría que tu backup pesase el doble ocupando un considerable espacio.

Es importante indicar en tu archivo .htaccess que la web "clonada" no sea indexada por los buscadores, para evitar ser penalizado por contenidos duplicados.

Si en la tienda en producción tenías SSL activado, recuerda que el clon no está expuesto a los bots de indexado y a las visitas de los compradores por lo que no tiene mucho sentido que actives SSL en el clon.

Si ya tenias SSL en la web en producción, tu clon habrá heredado la configuración para funcionar con HTTPS. Debes desactivar estas opciones para que el clon no te acabe devolviendo a la tienda en producción y hagas al final cambios en el lugar equivocado.


Desactivar SSL

Haz clic en la imagen para ampliarla  

 

 Vídeo explicativo de la clonación

 

En el siguiente vídeo te lo explico en un caso práctico, donde realizo la clonación una tienda en producción de PrestaShop.



 

 Eliminando una web clonada

Es habitual encontrar casos, al menos en el Soporte de Webempresa, que el cliente ha clonado tiempo atrás una tienda PrestaShop, realiza las pruebas oportunas, y finalmente abandona el clon, dejándolo en el Hosting y dedicando su total atención la instalación de PrestaShop que tiene en producción vendiendo.

Esto tiene algunas implicaciones que no pueden ser ignoradas, tales como que la tienda clonada posiblemente quede desactualizada, estancada en una versión obsoleta y posiblemente con alguna vulnerabilidad explotable.

Además está el problema del espacio que esta web clonada sin uso sigue ocupando en el Hosting, que por regla general no suele ser poco, y de alguna forma acaba afectando al espacio disponible para el correcto desempeño de la web operativa y también de las cuentas de correo.

Deshacerse de web clonadas que ya no son necesarias es tan importante o más que duplicar la tienda para efectuar pruebas, actualizaciones, etc.

De forma resumida te explico los pasos a seguir para eliminar una tienda clonada que ya no necesitas.

  1. Accede al Panel de Hosting (cPanel), Archivos, Administrador de Archivos.
  2. Navega a la carpeta donde esté la instalación de PrestaShop "clonada" por ejemplo: /public_html/clon.
  3. Accede a la carpeta /config
  4. Edita el archivo settings.inc.php
  5. Localiza los defines _DB_NAME_ y _DB_USER_ que hacen referencia a la base de datos que usa esta web clonada y anotalos.
  6. Ahora que ya sabes cual es la base de datos del clon, ve a Bases de Datos, en tu cPanel.
  7. Localiza y "Elimina" el usuario de la base de datos del clon.
  8. Localiza y "Elimina" la base de datos del clon.
  9. Vuelve al Administrador de Archivos de cPanel.
  10. Selecciona todos los archivos y carpetas con la opción de cPanel (icono superior) "Seleccionar todo".
  11. Haz clic en el icono superior "Eliminar".
  12. Confirma que quieres eliminarlos y marca la opción "Evite la basura y elimine permanentemente los archivos".

¡Listo! Ya has eliminado la web clonada y liberado espacio en el Hosting.

 

 Vídeo explicativo de la eliminación de un clon

En el siguiente vídeo puedes ver lo sencillo que es eliminar una web clonada de tu Hosting para liberar espacio.

 

 

 Conclusiones

Duplicar una Tienda de PrestaShop tiene más ventajas que inconvenientes, por muy laborioso que te pueda parecer el proceso pues te permite disfrutar de un "espacio de staging" eventual para probar actualizaciones del CMS (cambios de versiones), actualizaciones de módulos o prueba de nuevos módulos, sin exponer la tienda que tienes operativa vendiendo.

Si vas a realizar pruebas de módulos, cambiar de tema, modificar hojas de estilos css, modificar hooks, actualizar PrestaShop u otras tareas que puedan afectar a tu Tienda en producción, la recomendación es que clones la tienda y hagas primero las pruebas en una copia.

     

¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+


Plugin Optimización de Imágenes Gratuito para WordPress