elfosinmas creo que es php_value session.gc_maxlifetime 200000 en vez de php_flag como tu pusiste. Prueba a ver si era eso (por lo menos en Fedora creo que era php_value en vez de php_flag.
Otra forma puede ser establecer la duración en las cookies.
Puedes controlar el tiempo de una sesion poniendo esta linea ini_set("session.cookie_lifetime","36000"); pero tiene que ser la primera linea que aparezca, incluso antes de iniciar la sesion
Código PHP
<?php
ini_set("session.cookie_lifetime","36000");
session_start();
$_SESSION["ejemplo"]="invitado";
?>
Si ya quieres hacer cosas más elaboradas, puedes hacer que si ha pasado un tiempo determinado (una hora o lo que quieras) destruya la sesion.
Código PHP
<?php
ini_set("session.cookie_lifetime","36000");
session_start();
$_SESSION["time"] = time();
if (time() - $_SESSION["time"] < 3600) {
echo 'no ha pasado una hora';
}else{
echo 'ha pasado mas de una hora';
session_destroy();
}
?>
Espero haber sido de ayuda. Ya me contarás si algo de esto te ha funcionado, o si has encontrado la solución pues compartela con nosotros.