msfblue Posted August 26, 2014 Share Posted August 26, 2014 (edited) Hola Estoy desarrollando una librería hace un buen tiempo en prestashop 1.5.5, que es la ultima version que estaba disponible en el momento del inicio del proyecto. La versión de desarrollo inicial está alojada en Godaddy. Y funciona bien. Puedo navegar la página y hacer compras normalmente. Esta versión de desarrollo tiene 150 productos. http://libreriasiglo.com/libreriasiglocss/prestashop/critica-de-la-cultura/15-gabriel-garcia-marquez-testimonios-sobre-su-vida.html#.U_y4_tSSwWM Por problemas de soporte y de precios en godady y de tamaño de la tienda decidimos migrar a un VPS en inmotion. Y aunque el soporte es bueno no han podido solucionar el error 500 que aparece al añadir el producto al carrtio. En este versión tengo 22mil productos. http://vps12971.inmotionhosting.com/~librer8/libreriasiglo/home/12209-soledad-de-macondo-o-la-salvacion-por-la-memoria-la.html#.U_y06FFxiZb Que he hecho para arreglar los errores que han aparecido en la migración: 1. De la versión 5.4 de php, bajaron a 5.3.29 que es la que tenia en godaddy 2. Aumentaron memory_limit de 128 a 1024 3. Adiconalmente yo modifique otras variables del php.ini max_execution_time = 300 max_input_time = -1 max_input_vars = 10000 En soporte me dicen que es un modulo el que genera ese error, sin embargo son los mismos archivos y el mismo desarrollo en ambos sitios. El error 500 que aparece ha cambiado de mensaje inicialmente aparecia esto: Fatal error Allowed memory size of 536870912 bytes exhausted (tried to allocate 523800 bytes) in /home/librer8/public_html/libreriasiglo/override/classes/Cart.php on line 2488 Y luego me reportan esto en el hosting: [Mon Aug 25 18:59:32 2014] [error] Premature end of script headers: index.php Agradezco muchos sus consejos, comentarios y conocimiento en el tema Edited August 27, 2014 by msfblue (see edit history) Link to comment Share on other sites More sharing options...
msfblue Posted August 27, 2014 Author Share Posted August 27, 2014 (edited) Hola de nuevo, Ayer logré avanzar un poco más con las personas de soporte del hosting y respondieron esto: Hemos sido capaces de identificar un problema en el archivo php.ini estaba causando el error 500 y después de corregirlo no está ocurriendo ya. Por desgracia, el tema de la memoria nos ha eludido. Basado en el mensaje de error una gran cantidad de memoria se solicita por el sitio web al hacer clic en comprar. Tratamos de establecer el límite de memoria de 4 Gb y el error aún persiste, que es mucho más memoria que el sitio web debe necesitar para lo que está haciendo. Lamentablemente puede que tenga que hablar con un desarrollador o el equipo de soporte de su software para determinar por qué se solicita la cantidad de memoria. Es decir que el problema real es de memoria. Como puedo resolverlo ? Alguien tiene alguna idea ? Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 523800 bytes) in/home/librer8/public_html/libreriasiglo/override/classes/Cart.php on line 2488 Nota: este error lo lograron ver cuando desactive el modo ajax del módulo carrito. Gracias. Edited August 27, 2014 by msfblue (see edit history) Link to comment Share on other sites More sharing options...
msfblue Posted August 27, 2014 Author Share Posted August 27, 2014 Encontré el error !! Y es una bobada realmente. Primero desactive el override que tenia de la Clase Cart.php. Volví a recargar la pagina, y adicioné un producto al carrito. Hice seguimiento de la linea donde arrojaba error de memoria. En esa linea se hacia referencia a la función getPackageShippingCost, que calcula el shipping total de la compra. Me di cuenta que se quedaba en un eterno loop. Entonces procedí a revisar la configuración de transporte, transportistas y del módulo Kahanit Table Rate Shipping, Para mi sorpresa la migración que hicieron en el hosting de la base de datos no quedo con los parámetros correctos en TRANSPORTE. En la opción Transportista por defecto estaba "Envió gratuito" y yo en el sitio original tenia "Mejor Precio". Por lo tanto al ejecutar la carga del producto y querer obtener el shipping entraba en un loop interminable buscando el envió gratuito para los productos (supongo que eso era, no me detuve a ver realmente el código para entender porque el loop ). Debido a que mi tienda tiene configurado los envíos por peso y zona (modulo Kahanit Table Rate Shipping) el algoritmo no encontraba un envió gratis por defecto en los transportistas. Al modificar la opción a "Mejor Precio" ya dejo de aparecer el error. Espero esto le pueda servir a alguien o de pronto a ver de una manera diferente el error. Es la primera vez que hago una migración de prestashop así que bueno estoy aprendiendo. Saludos. Link to comment Share on other sites More sharing options...
Recommended Posts