Duplicar una web PrestaShop puede ser la solución para hacer pruebas y cambios ¡sin miedo! Si tu proyecto web es una Tienda y utilizas PrestaShop seguramente en determinadas ocasiones te ves en la necesidad de realizar tareas que 'llevadas a cabo incorrectamente' podrían dejar sin servicio tu sitio web y nadie podrá comprar en tu tienda.
La forma más sencilla de hacer pruebas de un módulo que no conoces o pasar a un nuevo Tema la tienda, con todo lo que eso conlleva, es creando una copia de la Tienda en producción de forma que los cambios que hagas en dicha copia no alteren el funcionamiento de tu web PrestaShop.
En este artículo se explica de manera pormenorizada y con un lenguaje sencillo como Duplicar una web PrestaShop a otra carpeta del mismo Hosting, de forma manual y en pocos minutos. Si quieres saber como hacerlo, sigue leyendo.
¿Como duplicar una web PrestaShop a otra carpeta?
- Accede al Panel de Hosting, Archivos, Administrador de Archivos.
- Navega a la carpeta donde esté la instalación de PrestaShop, por ejemplo: /public_html.
- Selecciona los archivos y carpetas con la opción de cPanel (icono superior) "Seleccionar todo".
- Haz clic en el icono superior "Copiar".
- Se abrirá una ventana 'popup' y abajo en la ruta, añadir al final de la ruta pon el nombre de la carpeta nueva que previamente deberás haber creado, por ejemplo /public_html/copia.
- Haz clic en Copiar Archivos (Copy Files).
- Otra vez clic en Subir un nivel (icono superior) para ver la carpeta /public_html
- Localiza la nueva carpeta creada y accede a ella para verificar que están los contenidos copiados.
- Revisa el archivo .htaccess (utiliza el Editor de Código) para comprobar que las rutas que contenga apuntan ahora a /public_html/copia.
- Desde cPanel, Base de Datos, clic en phpMyAdmin.
- Localiza la base de datos de la instalación de la Tienda PrestaShop en uso y ábrela.
- Haz lcic en la pestaña superior "Exportar".
- Guarda en el ordenador la copia en formato .sql exportada de la base de datos.
- Desde cPanel, Base de Datos, "crea una nueva base de datos" (ver videotutorial).(1)
- Desde cPanel, Base de Datos, haz clic en phpMyAdmin.
- Haz clic en la opción superior "Importar" de phpMyAdmin para importar la base de datos descargada en tu PC.
- Desde tu cPanel, Archivos, Administrador de Archivos, accede a la carpeta /public_html/copia/config (o donde tengas la copia de la web PrestaShop)
- Edita el archivo settings.inc.php y modifica los valores de las variables de la base de datos. (2)
- Guarda los cambios del archivo settings.inc.php.
- Accede al Back Office de la copia para modificar las rutas. Puedes seguir este artículo.
- Una vez cambiadas las rutas de la copia en el Back Office regenera el archivo .htaccess
- Descativa la caché.
- Activa Forzar Compilación.
- Trata de navegar por el sitio web tras estos cambios.
- Si la navegación es correcta deja la caché y Forzar Compilación como antes del cambio y guarda de nuevo.
- Verifica la carga de la web clonada.
1: 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).
2: Sustituye los valores de la base de datos por los de la nueva que has creado para la copia.
define('_DB_NAME_', 'xxxxxxxxxxxxx'); define('_DB_USER_', 'xxxxxxxxxxxxx'); define('_DB_PASSWD_', 'xxxxxxxxxxxxx');
Cambia el Nombre de la Tienda de la web clonada para no confundirla con la Tienda en producción.
En el siguiente vídeo verás todo el proceso completo de copiado de la web en producción de PrestaShop a otra carpeta.
¿Problemas con el archivo .htaccess de la copia?
Al duplicar la web en otra carpeta del mismo Hosting algunos de los parámetros recogidos en el archivo .htaccess es posible que no funcionen y produzcan errores de carga del sitio o de desempeño, la mayoría derivados de problemas de caché.
Una opción es renombrar el archivo de la web copiada /public_html/copia/.htaccess a /public_html/copia/.htaccess_old y luego crear un archivo vacío .htaccess (no te olvides que empieza por un punto -indica que es un archivo oculto, el punto-) con el siguiente contenido:
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again # .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # http://www.prestashop.com - http://www.prestashop.com/forums <IfModule mod_rewrite.c> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] # AlphaImageLoader for IE and fancybox RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] </IfModule> AddType application/vnd.ms-fontobject .eot AddType font/ttf .ttf AddType font/otf .otf AddType application/x-font-woff .woff #If rewrite mod isn't enabled ErrorDocument 404 copia/index.php?controller=404 # ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
Modificar SEO y URLs
Este paso es necesario para ajustar las rutas del apartado Preferencias", "SEO y URLS a las de la carpeta de la copia de la web, de lo contrario al navegar por la copia cualquier enlace nos llevaría a la web original, en producción.
- Accede al backoffice de Prestashop con la dirección de correo y contraseña correspondientes.
- En la pestaña superior "Preferencias" ve a "SEO y URLS".
- Localiza el apartado "Establecer enlace de la tienda".
- Modifica la url de "Dominio de la tienda".
- Modifica la url de "Dominio SSL".
- También debes cambiar la ruta en "Directorio raíz" (acaba siempre en slat a /copia).
La ventaja de realizar una copia de una tienda PrestaShop en otra carpeta es que podrás llevar a cabo pruebas, experimentar nuevos temas o probar actualizaciones sin que la Tienda visible en Internet a los compradores se vea afectada.
Si lo que necesitas es mover la web a otra carpeta, bien porque por error la hayas instalado en la carpeta equivocada o porque el dominio principal haya cambiado y la Tienda pase a ser gestionada desde un dominio adicional, consulta el siguiente artículo donde te explico todo el proceso para que la muevas con éxito.