Clicky

Error en los CMS Pligg y Kliqqi al actualizar PHP

Categoría: Internet (Tutoriales y trucos)
Visitas: 2424
Pligg ahora el Kliqqi

Invalid token (hack attempt) or timeout. Go back, refresh that page, and try again

Las actualizaciones para PHP 7 en CentOS vienen con una frecuencia de aproximadamente dos meses, pero mi memoria tiene un límite de una semana (me refiero a la memoria de mi cerebro, no de la máquina), así que cuando suceden ciertos errores que, eso sí, recuerdo haberlos visto antes, tengo que volver a analizar cuál es la causa y por eso escribo este artículo, para corregirlos rápidamente y si se puede ayudar a otros en la misma situación.

Tanto en los CMS Pligg como Kliqqi se necesita un archivo para guardar las sesiones de usuario, puede ser cualquiera dentro del servidor normalmente de algún directorio /tmp dentro del sitio web pero, si tienes varios sitios en el servidor y para normalizar la escritura de las sesiones, en CentOS se suele utilizar el directorio /var/lib/php/session

Cada vez que se actualiza una nueva versión de PHP (ahora hemos pasado de la php70w-7.0.11-1 a la php70w-7.0.12-1) como es lógico se sobrescriben los archivos antiguos y, además (no se por qué), se modifican los permisos del directorio /var/lib/php/session a 770, con lo cual los usuarios de esos CMS que hablo no pueden escribir las sesiones en el directorio y se producen varios errores.

Aunque el sitio para los visitantes no presenta ningún cambio y se puede navegar con normalidad, dentro de la administración se producen errores en la publicación de artículos o en la gestión de usuarios.

En el primer caso al subir una imagen para el artículo se produce el siguiente error:

Upload Failled (timeout)

Es decir que se sobrepasa el tiempo de espera de la subida de imágenes.

Para el segundo caso de gestión de usuarios se produce el siguiente error:

Invalid token (hack attempt) or timeout. Go back, refresh that page, and try again

Que viene a decir lo mismo sobre el tiempo de espera.

Si nos vamos a los logs de errores de Apache nos aparecen varios como el siguiente:

[Sun Oct 23 19:58:58.110448 2016] [fcgid:warn] [pid 12445:tid 140564095735552] [client 81.32.222.62:55974] mod_fcgid: stderr: PHP Warning: session_start(): open(/var/lib/php/session/sess_tt8j23n3mgpq1ni4glrha1t1s2, O_RDWR) failed: Permission denied (13) in /home/usuario/public_html/hablame-del-mar/modules/upload/upload.php on line 2, referer: https://www.vistaalmar.es/hablame-del-mar/submit/

El error nos dice que se ha denegado la escritura en el famoso directorio de PHP /var/lib/php/session del que hemos hablado más arriba.

La solución es cambiar los permisos a ese directorio, bien mediante un cliente FTP, bien mediante una de las siguientes instrucciones desde la línea de comandos:

# chmod ugo+rwx /var/lib/php/session

o

# chmod 777 /var/lib/php/session

Con esto daremos permisos para leer, escribir y ejecutar a todos (user, group , others) y estará arreglado el problema de los errores que hablamos.

Puede ser que en la primera ocasión que se publique un artículo después de realizar estos cambios nos de un error "Wrong step" de pantalla en blanco pero, por mi experiencia, sólo se produce una vez y el artículo se publica normalmente. Posteriormente a trabajar con normalidad como siempre con nuestros Pligg o Kliqqi.