
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.
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.
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.
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.
*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.
- DB_SERVER es el servidor de la base de datos.
- DB_NAME es el nombre de la base de datos que hemos creado anteriormente, en el paso 2, en nuestro panel de hosting
- DB_USER es el usuario asociado a la base de datos, que hemos creado anteriormente, en el paso 2, en nuestro panel de hosting.
- 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:
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:
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.
Abel Camarena Bernabéu
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
Alguien se ofrece a migrarme un sitio en prestashop de un hosting a otro?
Indiquen el precio por el mismo
Joel Schiavone
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
Gracias por el tutorial realice los passos y sin problemas.
https://www.admiracreativos.com
DAVID HERNANDEZ
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
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
Genial! Muy bien explicado y me ha servido perfecto.
He migrado el sitio sin problemas.
Muchas gracias!
Marcelo
Buenas noches, he seguido todos los pasos y cuando quiero ingresar en mi web me aparece un error: (no lo puedo pegar)
Albert Sardà
Hola Marcelo,
Necesitaría un poco más de información acerca del error para intentar ayudarte.
Saludos