Jump to content

Alguna incompatibilidad entre PHP 5.5.20 y Prestashop 1.5.2.0?


Recommended Posts

Buenas tardes a tod@s,

 

Abro este post por si alguien puede indicar solución o posible solución a este problema que me sucede desde hace algunos días.

 

1.- DATOS DE CONFIGURACION

 

WEB: www.manualidadeslacajita.es

Configuración: Prestashop 1.5.2.0 sin ningún cambio reciente ni modificación/inclusión de modulos

Hosting: Loading.es (compartido)

Configuración actual en el hosting: PHP 5.5.20 con OPcache

Configuración anterior en el hosting: PHP 5.4 con APCache

 

2.- DESCRIPCION DEL PROBLEMA

 

A ) Desde principios de año en un par de ocasiones no había acceso al frontoffice quedando la web con error (500) hasta que no reiniciaba el servidor php desde el panel plesk del hosting.

 

B )Consultando el log de errores del servidor aparecía de forma recurrente errores del tipo:

[error] [client XXX.XXX.XXX.XXX] (104)Connection reset by peer: FastCGI: comm with server "/usr/sbin/php-fpm-manualidadeslacajita.es" aborted: read failed
[error] [client XXX.XXX.XXX.XXX] FastCGI: incomplete headers (0 bytes) received from server "/usr/sbin/php-fpm-manualidadeslacajita.es

C ) Abro ticket al servicio tecnico del hosting indicando problema y contestan con:

 

 

Le hemos cambiado la versión de PHP/cache de PHP 5.4/APC por PHP 5.5/OPcache.

Con esta nueva configuración no tendrá problemas de fragmentación e inestabilidad que provoca APC.

 

D ) Desde el cambio de version php/cache no se produce el primer error

 

E ) Pero comienza a aparecer de forma constante, inundando el log de errores, el siguiente:

[error] [client XXX.XXX.XXX.XXX] FastCGI: server "/usr/sbin/php-fpm-manualidadeslacajita.es" stderr: PHP message: PHP Warning:  preg_replace(): Compilation failed: invalid range in character class at offset 22 in /var/www/vhosts/manualidadeslacajita.es/httpdocs/classes/Tools.php on line 982

F ) Reviso el archivo /classes/Tools.php en la línea indicada

$str = preg_replace('/[^a-zA-Z0-9\s\'\:\/\[\]-\pL]/u', '', $str);

G ) Consultando el foro y google, parece ser un ¿bug? de prestashop en un caracter en concreto (falta un "\")

VER BUG #PSCSX-2755 en GitHUb

 

Como se indica modifico la línea 982 y 983 del archivo classes/Tools.php dejándolas como:

$str = preg_replace('/[^a-zA-Z0-9\s\'\:\/\[\]\-\pL]/u', '', $str);
$str = preg_replace('/[\s\'\:\/\[\]\-]+/', ' ', $str);

H ) El error FastCGI en el archivo /classes/Tools.php deja de aparecer en el log de errores, pero al acceder a la web aparecen errores de timed out (no se registra nada en el log de errorres del hosting al respecto).

 

I ) Abro de nuevo ticket con el hosting indicando este problema y comentando que de vez en cuanto también aparecen errores

WARNING: [pool manualidadeslacajita.es] server reached max_children setting (5), consider raising it

Contestan con lo que ya imaginaba sobre subir max_children, pero sin dar pistas del problema de timed out

 

 

El error "server reached max_children setting (5)" indica que se ha llegado al máximo de peticiones web, seguramente porque la página no administra de forma correcta estas peticiones, son lentas y no las cierra. Ese parámetro no lo podemos tocar en el servidor porque permite controlar que una web no suba la carga del mismo y perjudique a los demás clientes.

Si ha instalado un módulo recientemente o sospecha que puede ser alguno de los que tiene habilitados pruebe a desactivarlo. Si no puede solucionarlo tendrá que contactar con un desarrollador que le pueda solucionar el problema.

 

J)  Activo modo debug en prestashop para comprobar si aparece algún error, pero no aparece nada. También borro cache de smarty desde ftp para descartar problemas

 

K ) Volviendo a revisar el log de errores ahora aparece:

[error] [client XXX.XXX.XXX.XXX] FastCGI: server "/usr/sbin/php-fpm-manualidadeslacajita.es" stderr: PHP message: PHP Warning:  Invalid argument supplied for foreach() in /var/www/vhosts/manualidadeslacajita.es/httpdocs/controllers/admin/AdminHomeController.php on line 549, referer: XXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXX= ruta del directorio de administracion de prestashop

 

3.- CONCLUSION

 

Desde la activación de la nueva version de php y cache en el hosting ya no aparecen los errores del apartado B pero si aparecen nuevos en relacion a PHP (apartados G - ya correjido parece - y K)

 

Mi duda es si este problema puede estar estar producido por el cambio de version de php o, no tiene nada que ver y tengo otro problema por algún lado que se me está escapando.

 

4.- PETICION DE AYUDA

 

Os agradecería si podeis indicarme por donde pueden "andar los tiros" para resolver el error.

Si necsitais algún dato más de configuración, no dudeis en pedírmelo.

 

Muchas gracias por adelantado.

 

Un saludo,

Link to comment
Share on other sites

Buenos días,

 

Alguien tiene alguna sugerencia al respecto??

 

Si los errores se debieran a la versión y sistema de cache actualmente instalados en el hosting (PHP 5.5.20 con OPcache), ¿qué combinación de ambos recomendáis para un prestashop 1.5.2.0?

 

Gracias.

 

Un saludo,

Link to comment
Share on other sites

  • 2 months later...

Buenos días,

 

Alguien tiene alguna sugerencia al respecto??

 

Si los errores se debieran a la versión y sistema de cache actualmente instalados en el hosting (PHP 5.5.20 con OPcache), ¿qué combinación de ambos recomendáis para un prestashop 1.5.2.0?

 

Gracias.

 

Un saludo,

 

Hola,

 

A mí me acaba de pasar lo mismo, me estaba volviendo loco y caí que instalé ayer a última hora un módulo no nativo de un chat online. Ha sido desinstalarlo y volver todo a la normalidad. Primero se me iba forzando compilación y vaciando el caché, pero me volvía a aparecer al rato. Ya te digo que ha sido quitar ese dichoso módulo del chat y volver a ir fina la web.

 

Intenta recordar si has instalado algún módulo, aunque imagino que lo habrás solucionado, para otra vez no está de más que recuerdes qué módulo instalaste el último.

 

Un saludo.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...