Recientemente PrestaShop 1.7.4.2 presentó problemas de lentitud en el backoffice achacable a la API api.addons.prestashop.com del marketplace de PrestaShop.com invocada desde la función addonsRequest en el archivo classes/Tools.php.
Esto ha llevado a la liberación de PrestaShop 1.7.4.3 para corregir este bug “importante” y otros problemas menores detectados en la anterior versión. También se ha parcheado la rama 1.6 liberándose “como versión de seguridad únicamente” PrestaShop 1.6.1.21.
Durante este tiempo, entre la detección del problema y la aplicación de una solución correctiva por parte de los desarrolladores, por ejemplo, en Webempresa y gracias a las habilidades de nuestro Sysadmin Yago, hemos aplicado una regla (iptable) para que el tráfico procedente de la IP del marketplace, por medio de su API api.addons.prestashop.com quedase bloqueado y así no verse afectadas las miles de instalaciones de PrestaShop albergadas en los servidores, que podrían contaminarse de la lentitud de dicha API de PrestaShop.
Resuelto el problema con la nueva versión, se levanta la restricción de conexión de la API con las instalaciones de clientes y para quienes actualicen, algo sumamente recomendado, quedará corregido el problema de “funcionamiento lento” en el backoffice.
Tabla de contenidos
Mejoras y correcciones
Para PrestaShop 1.7.4.2 se ha corregido el problema de la API “lenta” y un error por el cual información de configuración confidencial podía ser revelada cuando se producía un error fatal, dando lugar a la versión 1.7.4.3.
Para PrestaShop 1.6.1.20 se han solucionado 5 errores importantes:
- Solucionado un problema en el que el núcleo que impedía el acceso a los recursos remotos en algunas circunstancias.
- Solucionado un error por el cual la información de configuración confidencial podía revelarse cuando se producía un error fatal.
- Solucionado un problema por el cual los spammers explotaban el formulario de contacto para enviar mensajes a terceros.
- Solucionado un bloqueo al intentar enviar un correo electrónico a una dirección que contenía caracteres no compatibles.
- Solucionado un problema de escalada de privilegios en el que un usuario registrado en el backoffice podría ejecutar código arbitrario en el sistema.
Si quieres conocer los detalles de los errores y/o problemas corregidos, puedes consultar la lista completa de mejoras y cambios aplicados en el changelog de estas versiones:
Requisitos de PrestaShop 1.7.4.3
Para que PrestaShop tenga un buen desempeño tienes que prestar atención a los requisitos que necesita cumplir el servidor donde alojas tu tienda:
- Versión PHP mínima: 5.6.30. Solo para PS 1.7.0
- Versión PHP recomendada: 7.1 Para PS 1.7.0 a 1.7.3 (Funciona más rápido).
- Versión PHP para PrestaShop 1.7.4.3: 7.2.
- Accelerators: No requerido (1)
- magic_quotes_gpc: off
- memory_limit: 512M
- max_execution_time: 300
- max_input_time: 300
- upload_max_filesize: 20M
- post_max_size: 20M
- max_input_vars: 10000
- allow_url_fopen: on (Activado permite importar imágenes).
- safe_mode: off
- cURL: (Con cURL instalado pasarelas como Paypal y otras funcionan sin problemas).
- mod_rewrite: instalado y activado.
- mod_security: off
- JSON: ON
- ctype: ON
- mySQL: 5.7 o superior (mejor rendimiento con mariaDB).
- mySQL: INNODB (myIsam no funciona correctamente).
- php.ini: (Debe incluir date.timezone).
- Open SSL: Versión 1.0.2 o superior.
- Servidores: Linux (Prestashop no es recomendable para servidores de Windows/IIS).
- cageFS y otro Firewall técnico en el servidor configurado correctamente para que en el backoffice no sea muy lento el bloquear los servicios externos que usa Prestashop.
- suhosin.request.max_vars = 20000 o superior.
- suhosin.post.max_vars = 20000 o superior.
- max_input_vars = 20000 o superior
Adicionalmente se recomiendan las siguientes configuraciones para Opcache:
- opcache.revalidate_freq = 0
- opcache.validate_timestamps = 0 (comentar esto en entorno de desarrollo).
- opcache.max_accelerated_files = 7963
- opcache.memory_consumption = 192
- opcache.interned_strings_buffer = 16
- opcache.fast_shutdown = 1
(1) Es más recomendable utilizar fpm-php + opcache + fast-cgi y ngnix proxied.
Para mayor cantidad de productos es posible que los recursos mínimos no sean suficientes.
Actualizar a PrestaShop 1.7.4.3
Antes de actualizar tu Tienda realiza una copia de seguridad.
Proceso resumido de actualización de PrestaShop:
- Desde tu Panel de Hosting comprueba que los archivos y carpetas de la web de PrestaShop tiene los permisos adecuados (755, 644)
- Si eres Cliente de Webempresa, ejecuta Stephan desde tu Área de Cliente para que verifique los permisos de la web.
- Accede al backoffice de tu Tienda PrestaShop 1.7
- Ve a Personalizar, Módulos, Módulos instalados.
- Comprueba que tienes instalado el módulo “1-Click Upgrade” (Actualización en 1-Clic) versión 4.0.0. 1
- Si el módulo está instalado accede directamente a Más, 1-Click Upgrade (menú izquierdo).
- Activa el Modo Mantenimiento, de lo contrario no podrás actualizar.
- Comprueba en Comenzar Actualización que existe una versión nueva disponible superior a la instalada.
- Haz clic en el botón azúl ¡ACTUALIZAR PRESTASHOP AHORA!.
- Espera a que concluya el proceso, puede tardar.
- Concluida la actualización verifica que el aviso de actualización es correcto.
- Haz clic en el menú izquierdo Inicio.
- Accede de nuevo al BO (habrás perdido la sesión tras actualizar).
- Desactiva el Modo Mantenimiento (opción superior derecha del BO).
- Ve a Configurar, Parámetros Avanzados, Rendimiento y haz clic en Borrar la caché.
- Comprueba el funcionamiento del back y del front office de la Tienda.
Si todo ha ido correctamente ¡Felicidades! ya has actualizado a la versión estable y deberías ver esta pantalla.
Haz clic en la imagen para ampliarla
1 Si no tienes instalado el modulo Actualización 1-click localízalo en Módulos, Módulos y Servicios, y búscalo utilizando el buscador e instala concretamente la versión 4.2.0 que es la que actualmente recomienda el equipo de PrestaShop.
Haz clic en la imagen para ampliarla
Esta actualización afecta a 72 archivos que serán modificados y 1 archivo será eliminado (si existe).
Solución a posibles problemas de actualización
Si durante el proceso de actualización desde versiones 1.7.x anteriores se presentan errores y la actualización no concluye, es posible que esté causado por AJAX en el módulo 1-click Upgrade” de la versión 3.0.5 que presenta errores con upgradeFiles
y rollback
si se pretende “revertir” la actualización tras el intento de upgrade.
No se recomienda el uso de la versión 3.0.5 del módulo 1-Click Upgrade.
Se ha comprobado en diferentes instalaciones que la Tienda queda funcionando con normalidad tras la actualización a la nueva versión.
Vídeo de Actualización de PrestaShop
En este vídeo te muestro como actualizar una tienda con la versión 1.7.4.2 a la versión estable actual 1.7.4.3, usando el método del módulo Actualización 1-click poniendo antes la web en “modo mantenimiento”.
Recuerda que ante fallos o errores tras actualizar, que sigan permitiendo trabajar en el BO, siempre puedes usar la opción Revertir para volver al momento anterior a la actualización.
Sobre PrestaShop 1.6.1.22
PrestaShop 1.6.1.22 sigue siendo una versión estable y recibe actualizaciones de seguridad y mantenimiento hasta el 30 de junio de 2019 pero no se le aplican nuevas mejoras o funcionalidades a esta rama.
El módulo 1-click Upgrade” versión 4.2.0 debería permitir actualizar una Tienda PrestaShop 1.6.x a la rama 1.7.x, en su versión más estable, pero de momento sigue siendo inseguro y no recomendable aplicar este tipo de actualización en una tienda en producción.
La recomendación es mantenerse en versiones “estables” en la rama en la que se encuentre tu instalación, y que esperar a que se libere el modulo “oficial y estable” de 1-click Upgrade para hacer la migración de forma segura.
Si por el contrario te planteas dar el salto a PrestaShop 1.7.4.3 tendrás que tener en cuenta una serie de cuestiones.
Cosas que debes comprobar antes de plantearte actualizar:
- Si el Tema que usas es 100% compatible en PS 1.7.x
- Si los módulos que usas son 100% compatibles con PS 1.7.x
- Si arrastras módulos desde versiones de PS 1.6 muy antiguas y que al actualizar tengan funciones “deprecated” que luego no funcionen en PS 1.7.x y generen “warnings” o “errores PHP”.
Otra opción para actualizar a PS 1.7.x es exportar en CSV de la versión 1.6.x e importar en una instalación limpia 1.7.4.3 y realizar los ajustes pertinentes. Esto implica que tendrás que plantearte el cambio de Tema (plantilla) de la tienda para evitar innumerables incompatibilidades..
Conclusiones
Si tu tienda estaba presentando problemas de lentitud en el backoffice causado por el bug de la API que conecta al marketplace de PrestaShop.com, actualizar a la versión estable 1.7.4.3 es el proceso recomendado que debes aplicar previa copia de seguridad.
Si aún estás anclado en versiones viejas de PrestaShop plantéate seriamente dar el salto, o crear una instalación limpia e importar los productos y otros datos importantes de tu actual tienda, dale un lavado de cara al Tema que uses y sigue el ritmo de las versiones actuales de este CMS.
Mientras, seguimos esperando la liberación de PrestaShop 1.7.5.0 deseando que esta versión traiga mejoras y el módulo “estable” de transición entre ramas.
¿Te ha resultado útil este artículo?
Miembro del equipo de soporte técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Soporte técnico en CiberProtector. Teacher en Webempresa University