Solución:
Consulte php.ini, el valor establecido para session.gc_maxlifetime es la vida útil de la ID en segundos.
Creo que el valor predeterminado es 1440 segundos (24 minutos).
http://www.php.net/manual/en/session.configuration.php
Editar: Como señalan algunos comentarios, lo anterior no es del todo exacto. Una maravillosa explicación de por qué y cómo implementar la duración de las sesiones está disponible aquí:
¿Cómo expiro una sesión de PHP después de 30 minutos?
El valor predeterminado en php.ini para session.gc_maxlifetime
directiva (el “gc” es para la recolección de basura) es 1440 segundos o 24 minutos. Consulte la página de configuración del tiempo de ejecución de la sesión en el manual:
http://www.php.net/manual/en/session.configuration.php
Puede cambiar esta constante en los archivos php.ini o .httpd.conf si tiene acceso a ellos, o en el archivo .htaccess local en su sitio web. Para establecer el tiempo de espera en una hora usando el método .htaccess, agregue esta línea al archivo .htaccess en el directorio raíz del sitio:
php_value session.gc_maxlifetime "3600"
Tenga cuidado si está en un host compartido o si aloja más de un sitio en el que no ha cambiado el predeterminado. La ubicación predeterminada de la sesión es el directorio / tmp, y la rutina de recolección de basura se ejecutará cada 24 minutos para estos otros sitios (y eliminará sus sesiones en el proceso, independientemente del tiempo que duren). deberían mantenerse). Consulte la nota en la página del manual o en este sitio para obtener una mejor explicación.
La respuesta a esto es mover sus sesiones a otro directorio usando session.save_path. Esto también ayuda a evitar que los malos secuestran las sesiones de sus visitantes desde el directorio predeterminado / tmp.
depende de la configuración de php …
usar phpinfo()
y eche un vistazo al capítulo de la sesión. Hay valores como session.gc_maxlifetime
y session.cache_expire
y session.cookie_lifetime
que afecta la vida útil de las sesiones
EDITAR: es como Martin escribió antes