Como migrar una tienda Prestashop (1.6.x) a un hosting

Prestashop

Como migrar una tienda Prestashop (1.6.x) a un hosting

*** ACTUALIZACIÓN ***: Para Prestashop 1.7.X+ teneis más instrucciones en los comentarios.

Hola a todos y saludos desde el área web de la Escola Espai.

El mes pasado realizamos un seminario especial sobre copias de seguridad y migraciones de servidor de los CMS más famosos (WordPress, Joomla y Prestashop). En este articulo vamos a repasar los pasos para migrar una tienda Prestashop (con versión 1.6.x) de un servidor a otro. En este caso lo haremos de una instalación en un servidor local usando XAMPP a un servidor remoto, o sea, un hosting.

XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl. Xampp permite instalar de forma sencilla Apache en tu propio ordenador, sin importar tu sistema operativo y de forma gratuita. Para más información visita la página oficial de XAMPP

Partiremos de una web en Prestashop instalada en nuestro servidor local XAMPP (http://localhsot/prestashop).
Para poder tener una web en Prestashop publica en Internet necesitamos una cuenta de hosting y un dominio. Si no lo tenéis siempre podéis obtar, como yo, por utilizar servicios de hosting gratuitos o de prueba que algunas empresas como hostinger o Cdmon ofrecen..

Así que migraremos nuestra tienda Prestashop a un hosting bajo el dominio

http://seminariosespai.esy.es

.
Así que vamos a ello!

PASO 1: BACKUP DE ARCHIVOS Y BASES DE DATOS

Lo primero sera hacer una copia de seguridad tanto de los ficheros de tu tienda Prestashop y de la base de datos.
Para hacer una copia de los ficheros simplemente nos guardaremos los archivos donde tengamos instalada nuestra tienda Prestashop.
Para hacer una copia de la base de datos usaremos el panel de administración de nuestra tienda prestashop. Iremos a Parametros Avanzados > Respaldar BD y haremos click en el botón que dice “He leído la advertencia - Crear una nueva copia de seguridad”. Una vez hecho lo tendremos disponible en la parte de abajo. Simplemente clicamos y la descargarmos.

migrar Prestashop hosting

Exportar la base de datos desde el panel de administración de nuestra tienda Prestashop

PASO 2: EXPORTAR E IMPORTAR LA BASE DE DATOS

Una vez tenemos una copia de la base de datos de nuestra tienda Prestashop y también de los ficheros, el siguiente paso será acceder al hosting contratado para alojar nuestra tienda Prestashop y crear una base de datos en el panel de administración y un usuario asociado a dicha base de datos.

migrar Prestashop hosting

Creación de una base de datos desde el panel de administración de un hosting

Para importar la base de datos, tendremos que acceder a la interfaz phpMyAdmin de nuestro hosting. Seleccionaremos la base de datos creada anteriormente y haremos click en la opción importar.

Importar base de datos desde la interfaz phpmyadmin

Importar base de datos desde la interfaz phpmyadmin

Seleccionamos el archivo descargado anteriormente desde la administración de nuestra tienda Prestashop y pulsamos en “Continuar”. Cuando termine el proceso ya tendremos la base de datos importada a nuestro servidor.

PASO 3: SUBIR LOS FICHEROS A NUESTRO SERVIDOR

Ahora toca subir los archivos que nos hemos guardado anteriormente.

Para subir los archivos lo podemos hacer utilizando el gestor de archivos que nos proporcione nuestro hosting o conectar mediante FTP. Esta opción es la recomendada, pero para poder realizar esto tendréis que disponer un cliente FTP, como Filezilla, que nos permita conectar nuestro ordenador con el servidor vía internet.

El uso de filezilla es muy sencillo, es simplemente instalar y luego configurar nuestros datos de conexión al FTP: Servidor, Nombre de usuario y Contraseña.

Conectar a un servidor remoto mediante Filezilla

Conectar a un servidor remoto mediante Filezilla

*Los datos de conexión al FTP, nos los proporciona nuestro hosting.

Elijáis la que elijáis tendréis que subir los archivos a la raíz del directorio o en un subdirectorio dependiendo de donde querríais que se ejecute vuestra tienda prestashop.

En nuestro ejemplo, queremos que se ejecute bajo el dominio http://seminariosespai.esy.es, por lo tanto, lo subiremos a la raíz del directorio de archivos. Si quisiéramos, por ejemplo, que nuestra tienda Prestashop se ejecutara cuando visitáramos la dirección http://seminariosespai.esy.es/tienda, crearíamos un directorio llamado “tienda” en la raíz y subiríamos los archivos en dicho directorio.

PASO 4: EDITAR ARCHIVOS DE CONFIGURACIÓN Y BORRAR CACHÉ

Una vez has importada la base de datos y los ficheros subidos. Tendremos que editar el archivo que se encarga de la configuración en prestashop. Se trata del archivo settings.inc.php que se encentra en el  directorio config. config/settings.inc.php

Buscamos las siguientes lineas:

define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'xxxxx');
define('_DB_USER_', 'xxxxx');
define('_DB_PASSWD_', 'xxxxxx');

Y editamos sus valores según la información que nos proporciona el hosting sobre nuestra base de datos.

  1. DB_SERVER es el servidor de la base de datos.
  2. DB_NAME es el nombre de la base de datos que hemos creado anteriormente, en el paso 2, en nuestro panel de hosting
  3. DB_USER es el usuario asociado a la base de datos, que hemos creado anteriormente, en el paso 2, en nuestro panel de hosting.
  4. DB_PASSWD es la contraseña del usuario asociado a la base de datos, que hemos creado anteriormente, en el paso 2, en nuestro panel de hosting

Para la eliminación del contenido de caché en las plantillas, tendremos que eliminar todos los archivos de las siguientes carpetas:

  • /cache/smarty/compile/ (Menos el fichero index.php)
  • /cache/smarty/cache/ (Menos el fichero index.php)

PASO 5: ACTUALIZAR INFORMACIÓN EN BASE DE DATOS

Tendremos que editar una tabla de la base de datos importada para indicarle a nuestra tienda Prestashop cual es la nueva dirección URL.
Para ello accederemos a la base de datos mediante la interfaz Phpmyadmin y buscaremos la tabla PS_SHOP_URL. Seleccionamos la tabla y clicamos en el link “editar”, siempre dentro de la opción “Examinar”. Igual que en la siguiente captura:

Editar la tabla PS_SHOP_URL desde phpmyadmin

Editar la tabla PS_SHOP_URL desde phpmyadmin

Seran 3 los campos a editar:

  • domain: Aquí colocaremos nuestro dominio (sin http:// ni www). Como lo estamos migrando desde nuestro servidor local vemos que el valor que tiene es “localhost”. En mi caso lo cambiaré por seminariosespai.esy.es
  • domain_ssl: Hacer lo mismo que en domain.
  • physical_url: Aquí marcamos el directorio donde se encuentra nuestra tienda Prestashop.
    Si, como en mi caso, hemos subido los archivos en la raíz colocaríamos una barra / en el valor de dicho campo. Si lo hubiéramos subido en un directorio, por ejemplo, llamado tienda colocaríamos esto en dicho campo: /tienda/

Clicamos en guardar y listos. Así es como quedarían los valores en mi caso:

Tabla PS_SHOP_URL modificada.

Tabla PS_SHOP_URL modificada.

PASO 6: ACTIVAR/DESACTIVAR LAS URLS AMIGABLES

Para acabar tenemos que acceder al panel de administración de vuestra tienda Prestashop, ir a la pestaña Preferencias -> SEO / URLS, desactivar y activar las urls amigables de nuestra tienda Prestashop.

Y con estos 6 pasos lograríamos hacer la migración de nuestra tienda Prestashop a un servidor remoto.
Espero que os sirva y si tenéis dudas podéis usar los comentarios.

Saludos y hasta la próxima.

 

9Comentarios

  • Abel Camarena Bernabéu
    02/04/2019

    En Prestashop 1.7 el archivo con la configuración (host, base de datos, etc.) esta en: app\config\parameters.php
    Ojo que el puerto que se indica es el de la base de datos, no el del host.

    También debemos de borrar el contenido de la cache que hay en /var/cache/prod/

    También es posible que necesitemos cambiar un par de registros de la tabla ps_configuration, concretamente, PS_SHOP_DOMAIN y PS_SHOP_DOMAIN_SSL (además de lo que explica el artículo para la tabla ps_shop_url)

    Finalmente, es posible que también tengamos que modificar el .htaccess de la carpeta raiz (comprobar que el valor de REWRITEBASE sea correcto).

    En caso de problemas [el tipico error 500] es recomendable activar el modo debug en el fichero config/defines.inc.php (pero antes aseguraos de haber completado todos los pasos, sobretodo el paso #6)

  • Ignacio Montans
    26/07/2018

    Alguien se ofrece a migrarme un sitio en prestashop de un hosting a otro?
    Indiquen el precio por el mismo

  • Joel Schiavone
    02/01/2018

    Hola, esta muy bien explicado pero no encuentro la carpeta cache y me continua saliendo el siguiente error:
    Fatal error: Class ‘Cache’ not found in /home/joel6/public_html/tienda/classes/ObjectModel.php on line 1827

  • Jose Correa
    03/12/2017

    Gracias por el tutorial realice los passos y sin problemas.
    https://www.admiracreativos.com

  • DAVID HERNANDEZ
    02/04/2017

    hola, migre prestashop de una carpeta del hosting al root principal de un dominio en el mismo hosting y me da este error en los logs: 2017/04/01 – 17:53:03: Current theme unselected. Please check your theme configuration. at line 117 in file config/config.inc.php

    En la web me da Error: 500 Server Error
    es: http://cbhomecostarica.com/

    Yo respalde DB y archivos de manera manual, despues cambie la config de los archivos desde phpMyAdmin y borre los de la cache como dice aqui.. NO TENGO ACCESO A LA ADMINISTRACION 🙁

    La version es: 1.6.1.10, debería actualizarla?

  • Toni
    12/01/2017

    Hola Marcelo , en mi caso (tengo la version 1.6.1.5) el fichero index.php no aparece en ninguno de los reflejados, igualmente ¿tendria que borrar los directorios/ficheros de estos?.

    Gracias , un saludo.

    /cache/smarty/compile/ (Menos el fichero index.php)
    /cache/smarty/cache/ (Menos el fichero index.php)

  • Rodrigo
    23/11/2016

    Genial! Muy bien explicado y me ha servido perfecto.
    He migrado el sitio sin problemas.
    Muchas gracias!

  • Marcelo
    20/07/2016

    Buenas noches, he seguido todos los pasos y cuando quiero ingresar en mi web me aparece un error: (no lo puedo pegar)

Escribe un comentario