ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 30 * 60);
bunları denediniz mi?

ya da
$timeout = 30 * 60;
if( ! isset($_SESSION['timeout']))
{
    $_SESSION['timeout'] = time();
}

if($_SESSION['timeout'] + $timeout < time())
{
    session_destroy();
    //Location:/logout.php gibi..
}