Foros del Web » Administración de Sistemas » Software para Servers »

Ubuntu Server - variables de sesion php error

Estas en el tema de Ubuntu Server - variables de sesion php error en el foro de Software para Servers en Foros del Web. Hola a todos, necesito vuestra ayuda porque me ha surgido un problema con un sig que tenía funcionando correctamente y tras actualización no lo hace ...
  #1 (permalink)  
Antiguo 04/05/2012, 04:41
 
Fecha de Ingreso: enero-2003
Mensajes: 16
Antigüedad: 21 años, 3 meses
Puntos: 0
Ubuntu Server - variables de sesion php error

Hola a todos, necesito vuestra ayuda porque me ha surgido un problema
con un sig que tenía funcionando correctamente y tras actualización no
lo hace correctamente. Hace unos años desarrollé un sig con
Apache+PHP+MapServer+Postgresql+Postgis+Chameleon. Tenía todo
instalado en un ordenador con Windows XP (32bits) y en un servidor HP
Proliant con Ubuntu Server 9.10 64bits, y en ambos casos funcionaba
bien. Después me surgieron otras necesidades y necesitaba instalar
Mysql y otras cosas y me encontré con que la versión de Ubuntu ya no
tenía soporte y no podía utilizar apt-get ni aptitude, ni instalar
actualizaciones porque siempre me pedía actualizar a una versión
posterior.

Decidí instalar desde cero todo:
- En Windows XP he instalado MS4W v3.0.2 con Mapserver 5.6.6, PHP
5.3.6, Apache 2.2.17 con OpenSSL 0.9.80, Chameleon 2.6, Postgresql 9
con Postgis 1.5.
- En el servidor con Ubuntu 11.10 64bits, instalando desde los
repositorios oficiales Mapserver 5.6.6, PHP 5.3.6-13, Apache 2.2.20,
Chameleon 2.6, Postgresql 9 con Postgis 1.5.

En Windows XP todo sigue funcionando correctamente pero en Ubuntu todo
funciona bien (login, formularios, consultas, etc) excepto cuando se
abre Mapserver con la interfaz de Chameleon (que aunque está un poco
desfasada satisface mis necesidades). El error que muestra Mapserver es:

"Error rendering map image:
A fatal error has occurred restoring your session.
Please restart the application ".

Este error se produce aleatoriamente, es decir, a veces aparece nada
más arrancar la web que muestras los mapas y otras veces arrancan bien
los mapas y tras interactuar con los botones por ejemplo de zoom,
buscar, seleccionar capas, etc. llega un momento que produce el error.

He probado a cargar los mapas con varios navegadores: Internet
Explorer 8 y 9, Firefox 9, 11 y 12, con Chrome, etc y con todos se
produce el error (algunas veces antes y otras veces más tarde).

He localizado el mensaje de error en los ficheros de Chameleon y se
produce cuando se pierde la sesion. Tras preguntar en la lista de
correo oficial de Chameleon me han contestado de no es problema de
Mapserver o Chameleon, sino que el problema son las variables de
sesión de PHP en Ubuntu que no son correctamente leidas.
He mirado donde Ubuntu crea las variables que es en /var/lib/php5/ y
cuando entro en el SIG van creando los ficheros.
El contenido por ejemplo de esta carpeta es:

-rw-r--r-- 1 www-data www-data 0 2012-05-02 12:29 deleteme
drwxr-xr-x 2 www-data www-data 4096 2012-05-02 13:00 sess_4fa1124a4c1b0
drwxr-xr-x 3 www-data www-data 4096 2012-05-02 13:03 sess_4fa113d58b836
drwxr-xr-x 3 www-data www-data 4096 2012-05-02 13:28 sess_4fa11a52ecf87
drwxr-xr-x 3 www-data www-data 4096 2012-05-02 13:30 sess_4fa11ac13d4a7
drwxr-xr-x 3 www-data www-data 4096 2012-05-03 08:15 sess_4fa22030ecf5a
drwxr-xr-x 3 www-data www-data 4096 2012-05-03 08:33 sess_4fa2248dd36d3
drwxr-xr-x 2 www-data www-data 4096 2012-05-03 08:35 sess_4fa2272b9d3c6
drwxr-xr-x 3 www-data www-data 4096 2012-05-03 08:43 sess_4fa228e314a33
drwxr-xr-x 2 www-data www-data 4096 2012-05-03 10:00 sess_4fa23b23bcd80
drwxr-xr-x 3 www-data www-data 4096 2012-05-03 12:29 sess_4fa25d60a2ea9
-rw------- 1 www-data www-data 185 2012-05-03 12:26
sess_gmi7nemimpfsaf2lppn55m92c2

Y por ejemplo en el directorio sess_4fa25d60a2ea9/ que se crea al
entrar en el sig los ficheros son:
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040950-8569.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040951-2414.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040951-3346.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040957-2107.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040957-2317.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040959-3372.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040959-7593.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040960-7987.map
-rw-r--r-- 1 www-data www-data 15887 2012-05-03 12:29 1336040961-4889.map
-rw-r--r-- 1 www-data www-data 15864 2012-05-03 12:29 1336040963-2339.map
-rw-r--r-- 1 www-data www-data 15864 2012-05-03 12:29 1336040963-2976.map
-rw-r--r-- 1 www-data www-data 15948 2012-05-03 12:29 1336040972-4146.map

-rw-r--r-- 1 www-data www-data 15948 2012-05-03 12:29 1336040972-8593.map
-rw-r--r-- 1 www-data www-data 128 2012-05-03 12:27
8b4b39babc2d1b7a1b23490574832862.shp
-rw-r--r-- 1 www-data www-data 108 2012-05-03 12:27
8b4b39babc2d1b7a1b23490574832862.shx
-rw-r--r-- 1 www-data www-data 14967 2012-05-03 12:26 mapDHTML_adjust.map
drwxr-xr-x 2 www-data www-data 4096 2012-05-03 12:29 queryresultdir
-rw-r--r-- 1 www-data www-data 13898 2012-05-03 12:29 session_file

He buscado en internet el error de las variables de sesión de php en
linux, pero lo que encuentro no está relacionado con mi problema.
He instalado todo en el servidor con Ubuntu 11.10 32 bits y después
con Ubuntu 12.04 32 y 64bits y el error es el mismo.

¿Puede alguien darme una pista de como solucionarlo?
  #2 (permalink)  
Antiguo 07/05/2012, 03:11
 
Fecha de Ingreso: enero-2003
Mensajes: 16
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Ubuntu Server - variables de sesion php error

Os adjunto el resultado del phpinfo() en PDF por si alguien puede ver algo que me ayude:

[URL="http://www.mediafire.com/?tjtyh7tfj0y86p1"]http://www.mediafire.com/?tjtyh7tfj0y86p1[/URL]
  #3 (permalink)  
Antiguo 08/06/2012, 04:03
 
Fecha de Ingreso: enero-2003
Mensajes: 16
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Ubuntu Server - variables de sesion php error

Hola, por fin he encontrado el problema y la solución. Gracias a un administrador de sistemas ubuntu (Sergio) de España, hemos depurado el codigo de las librerias de Chameleon y encontrado el porqué se producía el "Error rendering map".
El problema surgía cuando la función fwrite trabajando en modo "w" truncaba los ficheros de la sesión de php, de manera que la función fread devolvía un 0 en algunas ocasiones. Supusimos que hacía falta una función de bloqueo mientras fwrite está escribiendo así que al buscar en el código encontramos la solución. La línea 85 del ficheros "session.php" de chameleon dice:

/* file-based session locking based on code contributed by
* Andreas Hocevar [email protected] */
if (!isset($GLOBALS['bLockSession']))
$GLOBALS['bLockSession'] = false;

Si se cambia por esto:

$GLOBALS['bLockSession'] = true;

eliminando el if, ya no se produce nunca más el error bajo ubuntu server.

Etiquetas: apache, php, red, server, servidor, ubuntu, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:22.