Partimos de una necesidad. Tenemos un sitio web PrestaShop y queremos crear una copia completa para crear un entorno de desarrollo en el que poder hacer pruebas y trabajar con seguridad.
El fantástico panel de control Plesk incluye, de forma nativa, herramientas para hacer la clonación de un sitio web en WordPress de forma realmente sencilla.

Tanto con la función «Copiar datos» como directamente con la opción de «Clonar» podremos hacerlo en unos pocos clics. Más fácil imposible.
Pero, ¿qué ocurre cuando el sitio web es un PrestaShop?
Creando un entorno de desarrollo para PrestaShop
Disponer de un entorno de desarrollo para una web en PrestaShop es algo imprescindible cuando trabajamos de forma mínimamente seria y profesional. Hacer cambios en vivo sobre un desarrollo tan complejo como PrestaShop puede hacer que nuestro comercio electrónico deje de funcionar o funcione con errores graves.
Crear un entorno de desarrollo para PrestaShop teniendo un servidor Plesk es sencillo, pero requiere de unos pasos adicionales que os detallamos a continuación:
Crear un subdominio de desarrollo para PrestaShop
Vamos a suponer que nuestro dominio es «midominio.com», una fantástica página web creada con PrestaShop y que está funcionando en Internet.
Una opción muy socorrida es crear un subdominio del tipo «dev.midominio.com«.
Para hacerlo, vamos a la opción de «Dominios» y le damos al botón de «Añadir subdominio«.

Buscaremos nuestro dominio principal y generemos el subdominio «dev» en él.
Quedará algo tal que así:

Cuando la web que queremos clonar no es de tipo WordPress, Plesk no ofrecerá la opción de Copiar y Clonar… así que el procedimiento es más artesano, pero nada complejo cuando tienes claros los pasos.
Copiar sitio web de PrestaShop
El primer paso es utilizar la opción de «Copia de sitio web» que nos permitirá trasladar una copia de los archivos del sitio web de nuestro dominio principal a nuestro subdominio de desarrollo.
Algo MUY IMPORTANTE es que debemos estar seguros de estar trabajando con nuestro DOMINIO PRINCIPAL (el que no tiene la palabra dev). Esto se mira arriba del todo.

Es fundamental, pues ahora daremos la orden de COPIAR desde este origen hacia su nuevo destino. Si trabajamos sobre el «DEV» podemos copiar un directorio vacío sobre la web que está en funcionamiento. ¡Horror!
Nos aseguramos que el destino sea nuestro entorno de desarrollo «dev.midomino.com«.
Podemos marcar la opción de «Conservar los archivos existentes en el sitio de destino» o «Eliminar todos los archivos existentes» si este es nuestro primer entorno de desarrollo.
Si estamos actualizando un entorno de desarrollo ya creado, deberemos marcar la segunda opción para borrar lo viejo antes de copiar de nuevo la copia actualizada.

Clonar la base de datos de PrestaShop
Los archivos son parte crucial, pero un sitio web desarrollado en Prestashop sin su base de datos no va a funcionar.
Debemos, pues, clonar la base de datos de PrestaShop para que nuestro clon o web de desarrollo funcione sobre una copia de los datos, y no modificar nada de los datos que están en producción cuando llevemos a cabo las pruebas.
Volvemos a la pantalla de «Archivos y bases de datos«, pero esta vez vamos al botón de «Bases de datos«.

Veremos algo así. Con la opción de ir al gestor online (phpMyAdmin), exportar un volcado (copia de seguridad) y lo que nos interesa… «Copiar«…. que nos permitirá copiar la base de datos para nuestro recién creado entorno de desarrollo.

Aquí está… le daremos un nombre que sea lo suficientemente descriptivo para no confundirnos a futuro y le diremos que queremos «Crear una copia completa«.
En nuestro ejemplo generemos la base de datos como «dominio_dev» para recordar que es la asociada al entorno DEV.
¡Oh sí!… ya tenemos un clon de nuestra base de datos lista.

Si os fijáis, el usuario asignado es el mismo en las dos bases de datos. Original y copia.
Yo recomiendo tener las cosas bien separadas, así que podemos crear un nuevo usuario exclusivo para el entorno de desarrollo.
Esto se haría desde la opción de «Administración de usuarios» que tenemos en esta misma pantalla, en la zona superior derecha. Asignaríamos ese usuario a la base de datos clonada y listo.
Modificando la base de datos para el entorno de desarrollo de PrestaShop
Ya que estamos aquí, vamos a abrir «phpMyAdmin» en el CLON de la base de datos (fijarse bien de no hacerlo sobre la base de datos de producción).

Iremos a la tabla «ps_shop_url» donde tendremos dos columnas «domain» y «domain_ssl» que contendrá nuestro nombre de dominio en los dos casos.
Ahí debemos indicar el subdominio de desarrollo «dev.midominio.com» en nuestro caso de ejemplo.
¿Fácil verdad?
Modificando los archivos de PrestaShop para que funcione el entorno de desarrollo
Ahora solo nos queda modificar el archivo de configuración de Prestashop. Podemos usar el gestor de archivos integrado de Plesk, pues tendremos que modificar un archivo y borrar unas carpetas. También serviría por FTP si os es más cómodo.
Vamos a /app/config/parameters.php

Ahí está la clave de todo. Debemos modificar el «database_name» para indicar nuestro CLON de la base de datos (midominio_dev) en nuestro ejemplo.
Y si hemos creado un usuario y clave diferentes para esta base de datos, lo indicaremos en las dos líneas siguientes (database_user) y (database_password).
Si hemos clonado sin crear nuevo usuario, lo dejaremos tal cual esté.
El truco final pasa por borrar el contenido de la carpeta /var/cache, que puede contener una o dos carpetas (con muchísimas subcarpetas y archivos dentro).
Las marcamos y seleccionamos «Eliminar«.
Con eso nos aseguramos de que Prestashop vuelva a generar el caché con las rutas correctas.

Un consejo extra. Revisar el archivo «.htaccess» que está en el raíz de la web. Es posible que en él se haga referencia al nombre del dominio. En ese caso, cambiar lo que sea «midominio.com» por «dev.midominio.com«.
Revisar los módulos de PrestaShop en caso de problemas
Si algún módulo os da problemas en la web clonada, es posible que en su configuración se haga referencia al nombre del dominio. En ese caso actualizar el dato. No suele ser lo habitual, pero hay tantos módulos en el mercado que es imposible de precisar.
Desactivar el caché nativo y sistemas de caché de terceros
Si nuestro PrestaShop tiene la opción de «Caché» activa, es bueno quitarlo en un entorno de desarrollo. Ayudará a depurar mejor errores y probar cambios.
Vamos a «Parámetros avanzados > Rendimiento» y desmarcamos la casilla de «Caché».

Si tenemos un plugin de caché de terceros como el popular «JPresta – Page Cache Ultimate» es conveniente desactivarlo también en nuestro entorno de desarollo para evitar problemas.

Evitando que Google indexe el clon de Prestashop
Algo que es peligroso cuando se crea un entorno de desarrollo es permitir que Google entre al subdominio y se ponga a indexar contenido.
Lo ideal es ocultar este sitio web de desarrollo con la opción de «Mantenimiento» que el propio PrestaShop ofrece de forma nativa.
Para ello iremos a «Configuración > Mantenimiento» y marcaremos la opción de «NO» en la casilla de «Activar la tienda«.

Recuerda darle al botón «Añadir mi IP» para permitir a tu conexión ver la página web en modo mantenimiento.
Así, únicamente las direcciones IP que indiques (la tuya o la de la persona o empresa que te ayude con la web) podrán acceder, y Google quedará imposibilitado el acceso para indexar.
Si todavía no quedas tranquilo, puede excluir «dev.midominio.com» en Google Search Console… así nunca entrará el robot hasta dentro, pase lo pase.
Esto se realiza en «Indexación > Retirada de URLs«.

Fijarse que esté la segunda opción marcada, «Retirar todas las URLs que tengan este prefijo«.
¡Ya está! Ya tenemos nuestro Prestashop listo para jugar con él sin interferir con nuestra web en producción.