Son miles los usuarios que todavía trabajan con PrestaShop 1.6.1.x, y demasiados los que aún siguen utilizando versiones desactualizadas, vulnerables y limitadas en funcionalidades, pero poco a poco van dando el salto a PrestaShop 1.7
Los más atrevidos llevan tiempo desarrollado la tienda con PrestaShop 1.7 en su ordenador, el local (localhost) como solemos decir, y ahora necesitan trasladar PrestaShop 1.7 al Hosting para que la tienda sea visible en Internet.
Esta guía te ayudará en el proceso de traer tu tienda local, alojada en tu ordenador, hasta el Hosting que tengas contratado, de forma que te sea posible continuar con la administración y mejora de la web y que esté visible desde tu dominio.
El escenario global es el siguiente; una instalación de PrestaShop 1.7.3.1 (versión actual estable) instalada en local (el ordenador) usando PHP 7.0, MySQL 5.7.21 (tampoco es relevante la versión de Apache/PHP y MySQL) que hay que trasladar a un Hosting que trabaja con cPanel.
Este es el ejemplo en el que centro el proceso, pero es adaptable a otros sistemas operativos y escenarios, la mecánica es la misma.
En qué carpeta local se instala PrestaShop
La instalación local de PrestaShop 1.7, utilizando XAMPP, se localiza en la carpeta /htdocs/ o en /htdocs/prestashop (dependiendo de sistema operativo puede variar la ruta anterior a esta carpeta) donde se puede ver la estructura de archivos y carpetas de la web.
Haz clic en la imagen para ampliarla
En esta estructura se encuentran todos los archivos y carpetas de la web, incluidas las imágenes de los Productos que se localizan específicamente en la carpeta /img de la instalación, por lo que al trasladar la web las imágenes también irán en el proceso.
Lo aclaro básicamente porque es una duda muy común entre usuarios poco experimentados con traslados.
La localización de la base de datos no es necesario conocerla ya que lo recomendado y práctico es descargarla desde el backoffice, Parámetros Avanzados, Base de Datos, Respaldar DB, que nos facilitará un archivo descargable de la misma.
No obstante, si quieres saberlo, por aquello de estar informado, en XAMPP por ejemplo deberías poder localizar la base de datos (en crudo) en la carpeta /mysql/data/prefijo_basedatos y en formato .sql solo exportándola desde phpMyAdmin o desde el BO como te indiqué antes.
Haz clic en la imagen para ampliarla
Vayamos al proceso de exportación desde local hacia el Hosting....
Exportar Archivos y Carpetas al Hosting
En el Hosting que hayas contratado, o que tengas funcionando de un tiempo a esta parte debes realizar una serie de cosas:
- Crear una carpeta destino de esta instalación (si tienes varias webs).
- Crear una base de datos y usuario de base de datos.
- Ajustar la versión de PHP para la carpeta destino de la web.
De esta forma te aseguras que podrás recibir la web de forma correcta y sin que posteriormente surjan problemas de funcionamiento.
Los archivos y carpetas lo correcto es que los comprimas en un solo archivo .zip en tu ordenador, desde la carpeta donde resida la instalación, de esta forma te aseguras que no dejas nada por el camino.
Olvídate de subirlos por FTP (subida lineal, lenta e insegura salvo que uses SFTP), es mejor subir un solo archivo ZIP que cientos de archivos sueltos, proceso lento donde los haya.
La forma más rápida de llegar hasta la carpeta donde esté la instalación de PrestaShop en tu ordenador es por medio del File Manager o Administrador de Archivos, o la Carpeta de la Aplicación, del Panel XAMPP/LAMPP (o el que uses en tu caso).
Por ejemplo con XAMPP en OSX (Mac) seria:
Haz clic en la imagen para ampliarla
Que abrirá la carpeta de XAMPP/LAMPP, etc., y dentro vete a la carpeta /apps/prestashop/htdocs/ donde verás todos los archivos y carpetas de la tienda.
Esos archivos y carpetas los tienes que seleccionar "TODOS", y con la aplicación que tengas en tu ordenador instalada comprimirlos en formato ZIP, ¡importante! en formato zip y no rar ya que este último formato no suele ser soportado en servidores con cPanel por lo que no podría aplicarse una extracción, ya que el módulo de descompresión de archivos rar no suele instalarse (por seguridad).
Haz clic en la imagen para ampliarla
Los seleccionas y con la funcionalidad de compresión asociada a una acción con el botón derecho de tu ratón haz clic en "Comprimir" o "Crear archivo comprimido" (puede variar la acción dependiendo de tu sistema operativo).
Obtendras un archivo nombre-del-archivo.zip con un peso aproximado de 70 MB.
Haz clic en la imagen para ampliarla
Este archivo zip es el que debes subir al Hosting, a la carpeta destino donde vayas a poner en funcionamiento la Tienda.
Accedes a tu cPanel, Archivos y desde el Administrador de Archivos navegas primero hasta la carpeta destino de la web, supongamos que sera /public_html/ps1730. Un vez situado en esta carpeta utiliza la opción Cargar de tu Administrador de Archivos o File Manager.
Haz clic en la imagen para ampliarla
Seleccionas el archivo en tu ordenador y lo subes al Hosting en formato comprimido zip. (Es más rápido subir un solo archivo zip que cientos de archivos sueltos).
Haz clic en la imagen para ampliarla
Verifica en el Hosting, en la carpeta de destino, que tienes el archivo zip cargado.
Haz clic en la imagen para ampliarla
El siguiente paso es extraer el contenido del archivo zip en la carpeta donde lo has subido, para que sea visible la estructura de archivos y carpetas de PrestaShop 1.7 que estás trasladando al Hosting.
Selecciona el archivo .zip y con el botón derecho (menú contextual) escoge la opción Extraer (Extract) para descomprimirlo en la misma carpeta en la que se encuentra.
Haz clic en la imagen para ampliarla
Se abre una ventana modal indicando la ruta de la carpeta que debes dejar tal cual aparece. Haz clic en el botón inferior de esa ventana Extract File(s) y espera que finalice.
Una vez se completa el proceso verás una ventana informativa con el registro de resultados (log).
Haz clic en la imagen para ampliarla
Ahora haz clic en la opción del menú superior de segundo nivel del Administrador de Archivos, llamada Actualizar.
Haz clic en la imagen para ampliarla
Esto dará como resultado la recarga de la página del filemanager y podrás ver entonces la estructura de archivos y carpetas de la instalación de PrestaShop que tenías en tu ordenador.
Haz clic en la imagen para ampliarla
Selecciona el archivo zip que subiste comprimido que no es necesario en el Hosting y eliminalo para liberar espacio.
Haz clic en la imagen para ampliarla
No olvides marcar la casilla Evite la basura y elimine permanentemente los archivos de la ventana modal de eliminación que se abre para confirmar el borrado. Si no la marcas estarás dejando el archivo en la Papelera del Hosting ocupando espacio.
Con esto queda concluida la parte del traslado de archivos y carpetas desde tu ordenador (localhost) al Hosting.
Vayamos a por la base de datos....
Exportar la Base de Datos al Hosting
Para exportar la base de datos de la tienda PrestaShop que tienes en tu ordenador (localhost) no es necesario bajarte los archivos en formato bruto .mdb ya que no podrás hacer mucho con ellos si no sabes cómo obtener un archivo final importable.
Lo correcto es que desde el Panel de Gestión de tu Servidor Web local abras la aplicación phpMyAdmin cargues la base de datos en uso en la web y la exportes en formato .sql para poder hacer uso de ella posteriormente.
Una vez descargada la base de datos en formato de archivo .sql tienes que crear una base de datos en tu Hosting (si no la has creado todavía) de forma que puedan recibir las tablas y registros que importes del archivo descargado.
Lectura recomendada:
Crear una base de datos en cPanel fácilmente
A estas alturas ya tienes los siguientes datos de la base de datos creada:
- Nombre de la base de datos.
- Usuario de la base de datos.
- Contraseña del usuario de la base de datos.
Y además le has otorgado privilegios a ese usuario de base de datos para poder escribir y ejecutar triggers, etc., en la misma.
Toca importar el archivo de base de datos que tienes en tu ordenador para que esos registros pasen a la base de datos que tienes en el Hosting.
- Accede a tu Panel de Hosting (cPanel).
- Ve a Bases de Datos y ejecuta phpMyAdmin.
- Carga la nueva base de datos que has creado y que estará vacía.
- En la opción superior Importar haz clic.
- Selecciona el archivo .sql que tienes en tu ordenador.
- Completa la operación de importación en Continuar.
Nota La información de datos de la base de datos instalada en local (tu ordenador) la encuentras en /apps/prestashop/htdocs/app/config en el archivo parameters.php.
Con esta tarea habrás podido importar tabla sy registros de tu base de datos local a la base de datos creada en tu Hosting.
Ahora solo queda que edites el archivo de configuración de los datos que conectan la base de datos con el script de PrestaShop de forma que todo funcione con normalidad.
El archivo a editar es:
/apps/prestashop/htdocs/app/config/parameters.php
El cual puedes editar desde tu Panel de Hosting, Archivos utilizando el "Editor" del Administrador de Archivos.
Haz clic en la imagen para ampliarla
Campos que debes modificar:
'database_name' => 'NOMBRE-NUEVA-BASE-DATOS', 'database_user' => 'USUARIO-NUEVA-BASE-DATOS', 'database_password' => 'CONTRASEÑA-NUEVA-BASE-DATOS',
Comprueba de paso si el prefijo de la base de datos es el mismo que figura en parameters.php no sea que al crear la nueva base de datos en tu Hosting este haya cambiado.
Luego, tras guardar los cambios en este archivo de configuraciones, prueba en una pestaña nueva de tu navegador que la web carga desde la url que hayas asignado a la Tienda.
http://www.tu-tienda.com
...es posible que no cargue del todo bien, quizás por caché de contenidos o por que aún te falten repasar algunas configuraciones.
Realiza los ajustes de la Tienda en el Hosting
Una vez has trasladado archivos y carpetas de PrestaShop 1.7 de tu ordenador al Hosting e importado la base de datos en una nueva creada expresamente en el Hosting para poder conectarla con la web mediante ajustes en parameters.php es necesario que apliques otros cambios para que te funcione la web desde el minuto 1.
¿Qué debes modificar en la instalación del Hosting?
- Ajustar rutas de SEO y URLs para que respondan a la nueva URL.
- Comprobar que el archivo .htaccess no tiene referencias locales o de rutas.
Es posible que en algunas instalaciones tengas que vaciar la caché para que se regenere y carguen bien los elementos de la página trasladada. No obstante en las pruebas realizadas no ha sido necesario este proceso.
La manera más rápida de modificar la URL que figure configurada en SEO y URLs es editando la tabla ps_shop_url y modificando los registros:
- domain
- domain_ssl
- physical_uri
De forma que respondan al nuevo dominio, subdominio o url temporal que hayas escogido para presentar la tienda trasladada.
Ejecutados los cambios verás un resultado parecido al siguiente:
UPDATE `ps_shop_url` SET `domain` = 'demo-prestashop.webempresa.eu', `domain_ssl` = 'demo-prestashop.webempresa.eu', `physical_uri` = '/' WHERE `ps_shop_url`.`id_shop_url` = 1;
Con esto podrás luego acceder a tu web en el Hosting desde la url del dominio/subdominio/url temporal establecido.
Referente a .htaccess es importante revisarlo, editandolo, preferiblemente desde tu cpanel, Archivos, usando el Administrador de Archivos y comprobar las líneas siguientes:
RewriteRule . - [E=REWRITEBASE:/]
Si la web está en un dominio adicional, subdominio o dominio principal el REWRITEBASE debe ser /, es decir, que indique al dominio o URI establecida que es una web alojada en la carpeta raíz de esa URI y no en subcarpetas.
Y la línea:
ErrorDocument 404 /index.php?controller=404
Lo mismo, si responde a una URI de dominio, subdominio o adicional/complemente, debe empezar como /index.php y no contener un nombre de carpeta antes del slat.
Son pequeños detalles que si los revisas evitarán que te vuelvas loc@ a la hora de arrancar la Tienda en el Hosting.
Cómo ves, nada que requiera programación o tareas complejas para que tu web pase de tu ordenador al Hosting en pocos minutos.
Vídeo del traslado de la Tienda
La mejor manera de repasar todo el proceso que te he explicado de forma detallada y así asegurarte de que lo has realizado bien es viendo el siguiente vídeo, para que no se te escape ningún detalle y dejes la web funcionando en el Hosting igual que como la tenías en tu ordenador o mejor ¡sin duda mucho mejor!
Al final, si le quitas la literatura que le he añadido al vídeo para ilustrar algunos "porqués" verás que es un proceso muy similar a clonar una web, nada del otro jueves.
Conclusiones
Si por razones de proyecto, falta de un Hosting para staging o pruebas, te has visto en la necesidad de crear una Tienda PrestaShop 1.7.x en tu ordenador, utilizando algún emulador de servidor, y ahora necesitas mover esa web a un Hosting que has contratado, o al Hosting de tu clientes (si eres implementador), con este tutorial has podido comprobar que llevar la web al Hosting es tarea sencilla y rápida.
Es cuestión de observar unos pasos necesarios, y en el orden que corresponde, ajustar un par de ficheritos y la base de datos y quedará todo listo para que la Tienda luzca en el Hosting y esté disponible en Internet para l@s posible comprador@s.
No compliques la tarea de trasladar PrestaShop 1.7.x de tu ordenador al Hosting, no es necesario. En apenas 4 pasos puedes realizarlo y empezar a disfrutar de la potencia que las tecnologías de un servidor online le ofrecerán a tu tienda.