La migración para pasar nuestra tienda online construida bajo el popular CMS para eCommerce PrestaShop de un Hosting a otro suele producir bastantes quebraderos de cabeza entre los usuarios, ya que tan solo metiendo la pata en algún punto de la misma todo se puede ir al traste y no verse la tienda en el nuevo servidor.
Es por ello por lo que en el día de hoy vamos a tratar de explicar cómo migrar PrestaShop 1.7 de Hosting (la última versión mayoritaria que hay disponible para este CMS de eCommerce).
Lo primero que tenemos que distinguir es que habrá un Hosting de Origen en otra empresa y luego un Hosting de Destino (supuestamente en Hostinet).
El proceso básicamente consiste en copiar la base de datos y los archivos web del servidor de origen al nuevo servidor de destino. Decimos “copiar” porque si los movemos, cortamos o los quitamos del servidor de origen y luego los seguimos necesitando porque alguno no se copio bien podremos seguir contando ellos en origen.
PrestaShop es una tienda online y, como tal, es posible que tenga una gran base de datos, que tal vez podemos “recortar” un poco de espacio si hacemos lo que indicamos en esta publicación → Delete Connections para PrestaShop – Borrar Datos Innecesarios de la Base de Datos.
De esta forma seguramente consigamos reducir considerablemente el espacio que ocupa la base de datos y nos podrá ayudar a exportarla e importarla mucho mejor.
PrestaShop 1.7 requiere de una base de datos MySQL para funcionar, por lo que en el servidor de origen debemos tener acceso al panal de control donde se aloje la base de datos o directamente a PHPMyAdmin, para así localizar la base de datos de la instalación de PrestaShop 1.7 original y exportarla mediante la opción «Exportar» que hay en el menú de la parte superior.
En caso de que solo tengamos la instalación de PrestaShop 1.7, solo tendremos una base de datos, así que será muy fácil de identificarla en el lateral izquierdo de phpMyAdmin, así como de expandirla con el “+” que tiene a la izquierda o pinchando con el ratón sobre la misma para que se muestren todas las tablas que la forman.
Ahora, si tenemos varias bases de datos, es posible que hayamos puesto algún detalle para saber que base de datos corresponde a PrestaShop 1.7.
De no ser así, tendremos que acceder a la instalación original de PrestaShop 1.7 mediante el administrador de archivos del panel del control del Hosting o un cliente FTP como Filezilla y localizar la siguiente ruta: app/config/parameters.php. Allí pondrá claramente el nombre de la base de datos de PrestaShop 1.7 (en nuestro caso: ‘database_name’ => ‘xxxxxxx_ps17clon’)
Sabiendo el nombre de la base de datos, volvemos a phpMyAdmin para hacer click sobre la base de datos en cuestión que pertenezca a PrestaShop 1.7, y pulsar en “Exportar”.
Tras ello, iremos a parar a una nueva página con los detalles sobre la exportación. Ofrece dos posibilidades:
• Rápido – mostrar sólo el mínimo de opciones de configuración
• Personalizado – mostrar todas las opciones de configuración posibles Tienes que dejarlo como viene por defecto, es decir, con la primera opción y en el desplegable mantener SQL. Comprueba que tienes esos datos puestos y dale al botón de Continuar.
Al darle al botón «Continuar» se empezará a descargar en nuestro disco duro un archivo .sql con el nombre de la base de datos de PrestaShop 1.7 – este archivo contiene una copia de seguridad total de la base de datos de la tienda original -.
Al ser una tienda online, es posible que la base de datos sea muy grande, pero no tenemos de que preocuparnos, ya que podemos subirla al directorio principal del Hosting de Destino y que un técnico de Hostinet se encargue de subirla.
Incluso si tenemos acceso a un panel de control del Hosting tipo cPanel, desde dicho panel se nos va a permitir descargar la base de datos comprimida, lo cual reducirá considerablemente su tamaño y no nos dará problemas para el siguiente paso.
Teniendo la copia de seguridad de la base de datos del PrestaShop 1.7 del servidor de origen, en el de destino, tan solo tendremos que crear una nueva base de datos e importar a la misma el contenido de la de la del servidor de origen.
En Hostinet todos nuestros planes linux cuenta con panel de control cPanel, lo cual facilita mucho la tarea de crear la base de datos. Nuestra recomendación es crear una nueva base de datos desde el panel de cliente, ya que es mucho más sencillo el proceso:
Después, tendremos que acceder al phpMyAdmin del Hosting de Hostinet para importar la base de datos original. El proceso a realizar sería similar al de antes, salvo que, en esta ocasión, sería seleccionar la tabla que acabamos de crear nueva en el Hosting de Hostinet y hacer click en “Importar” en vez de en “Exportar”.
En la nueva página con los detalles de la importación, simplemente tendríamos que darle al botón de “Seleccionar archivo”, buscar el archivo .slq que descargamos antes en nuestro disco duro, comprobar que en formato pone SQL, y darle al botón de «Continuar» (el sistema también acepta .sql comprimidos).
Como hemos comentado antes, en caso de que no podamos importarla correctamente al Hosting de Hostinet, podemos subir el backup de la base de datos al directorio principal del Hosting de Hostinet para que uno de nuestros técnicos se encargue de subirla.
El siguiente paso es tener una copia de seguridad de todos los archivos que forman la tienda en sí. Para ello, bien a través del administrador de archivos del panel de control del hosting de origen o mediante un un cliente FTP hay que acceder a la ruta donde estén estos ficheros originales para comprimirlos. Si disponemos de cPanel y accedemos el administrador de archivos, básicamente sería ir a public_html o la ruta donde este la instalación de PrestaShop, seleccionar todos los archivos. Por ejemplo, nosotros tenemos la tienda dentro de otra carpeta.
Le damos a «Comprimir» y escribimos el nombre de tienda.zip, pero antes de eso… debemos asegurarnos que tenemos marcada en el hosting la opción de mostrar los ficheros ocultos en la parte superior derecha, donde pone “Configuración”; desde allí debemos revisar si tenemos seleccionada la opción «Mostrar ficheros ocultos (dotfiles)». Si no se muestran los ficheros ocultos, archivos muy importantes como, por ejemplo .htaccess no se copiarían al realizar el proceso de duplicidad de contenidos.
Tras completarse el backup con el fichero .zip, nos dirigimos hasta el hosting de destino (el del Hostinet), subimos el archivo tienda.zip (o el nombre que le hayamos puesto) a public_html o la ruta donde vayamos a pasar la tienda y lo extraemos. Básicamente es usar la opción comprimir en origen y extraer en destino, tal y como ilustramos en esta captura de pantalla:
Con esto ya tendríamos migrado tanto el contenido web como la base de datos, pero aun así la tienda no va a funcionar porque la base de datos, usuario y contraseña será el mismo tanto en origen como en destino.
Por lo tanto, dentro de la instalación de PrestaShop 1.7, tenemos que acceder a la ruta: app/config/parameters.php y editar el archivo parameters.php para introducir en el mismo los datos que pertenecen a la base de datos que creamos en hostinet, ya que estará puesta la base de datos de origen.
Nota: Sino recordamos alguno de los parámetros de la base de datos, en la sección bases de datos de cPanel, podremos consultar allí tanto el nombre de la base de datos como el usuario y sino recordamos la contraseña podremos cambiarla por otra o incluso aplicarle la misma que tuviéramos en origen para que sea todo más sencillo.
Por último, para desvincular la web del servidor de origen y vincularla con el servidor de destino, es decir, con Hostinet, tendríamos que cambiarle las dns al dominio por las nuestras. Son las siguientes:
dns1.hostinet.com dns2.hostinet.com
Una vez cambiadas, estas se tienen que propagar y pueden tardar unas horas, por lo que para NO PERDER PEDIDOS recomendamos mantener en mantenimiento PrestaShop durante 24 horas hasta que se propaguen los cambios.
Antes de cambiar las dns al dominio podemos comprobar de forma local que tal funciona PrestaShop en los servidores de Hostinet.
Para ello tenemos que modificar el archivo host de nuestro ordenador; poniendo la ip del servidor de Hostinet y el nombre del dominio sin www y con www. Todo ello lo explicamos aquí:
Al tener una tienda online lo más seguro es que la tengas para que cargue con HTTPS, de no ser así ¡ya estás tardando en poner un Certificado SSL para que tus clientes confíen más en tu tienda!
El caso es que en el servidor de destino (en Hostinet) NO podrás emitir el Certificado SSL gratuito Let’s Encrypt si el dominio no apunta aquí, por lo que si intentas revisar que tal funciona tu tienda online no te dejara y te dirá que no es segura, pero hay un “truqui- truqui” que consiste en desactivar el HTTPS de la web, y así poder ver que tal funciona en local. Eso sí, si haces este proceso después te tienes que acordarte de volverlo a activar, y no solo eso, sino también de emitir Let’s Encrypt cuando el dominio ya apunte a Hostinet. Aunque en este punto no pasa nada, ya que en Hostinet hemos ideado un cron que pasa cada 12 horas por todos los servidores y si ve que algún dominio no tiene SSL lo emite automáticamente (más detalles). 😉
Para desactivar el SSL en el Hosting de destino (en Hostinet) tenemos que irnos hasta la base de datos de PrestaShop 1.7 y listar todas las tablas.
La tabla que nos interesa es la de ps_configuration. Podemos escribir “Configuration” en el buscador de la base de datos, entonces veremos la tabla que nos interesa: ps_configuration. (Ojo!, el prefijo ps_ no tiene porque coincidir, es sólo un ejemplo). Dentro de esta tabla tenemos que buscar un campo llamado PS_SSL_ENABLED (podemos usar control + f para buscarlo rápidamente, aunque a primeras no aparecerá y habrá que ampliar el numero de fila a 250 o más). PS_SSL_ENABLED estará con valor 1, tenemos que editar ese campo y establecer valor 0. (Ampliar detalles)
Si ahora intentamos acceder a nuestra tienda de forma local debería funcionar sin SSL y, por lo tanto, nos tendría que dejar visitarla sin mayor problema.
Acuérdate de que debes revertir los cambios del SSL en la base de datos, así como quitar del archivo hosts la línea introducida, no sea que migres tu tienda a otro sitio y, de forma local, siempre la mantengas apuntado a Hostinet, jeje. Ahhh! Y que tampoco se olvido volver a activar al tienda si la pusiste en modo mantenimiento!
Por cierto, es posible que no lo necesites, salvo que se presente algún error 404 en enlaces de tu tienda, pero, por si acaso, lo mejor es regenerar el archivo .htaccess para que se regeneren de nuevo todos los enlaces de los productos de tu tienda. Desde el panel de control de PrestaShop 1.7 (Backoffice), dirígete Preferencias -> SEO y URLs y, sin modificar nada, haz click en Guardar.
Por otro lado, también puedes borrar la caché interna de PrestaShop 1.7 en: Parámetros Avanzados -> Rendimiento -> Borrar la caché.
Y, por último, también es recomendado borrar la caché de tu navegador, ya que PrestaShop 1.7 se suele cachear bastante. Es por ello por lo que recomendamos usar un navegador anti-caché como Epic Browser.
Como habrás podido comprobar realizar la migración de un servidor a otro de un PrestaShop 1.7 es un «tostón». Por suerte, en Hostinet ofrecemos MIGRACIÓN GRATUITA en todos nuestros planes, a excepción de los más básicos, como puede ser el propio plan Básico o SSD1.
Por supuesto, nuestros Hosting PrestaShop SSD también incluyen MIGRACIÓN GRATUITA, así que si lo quieres todo opta por un plan PrestaShop con discos sólidos (SSD) ¡No te arrepentirás! 😉
Enlazamos Blog Oficial de PrestaShop → ¿Cómo migrar tu tienda PrestaShop a un nuevo servidor?