セッションが勝手に切れてしまうという現象は、複数のアプリケーションでセッションのデータディレクトリが共有されているときによく起こります。
もっとも短い"session.gc_maxlifetime"の範囲を持つものが、他のアプリケーションからデータを消していると思います。
その理由としては、PHPはセッションファイルを、デフォルトでシステムの一時的ディレクトリに保存してしまうからです。既存のファイルハンドラーではセッションファイルの元を特定することはできません。
そこで自分でセッションディレクトリを設定することをお勧めします。
以下を参考にしてください。
<?php
session_save_path('/session/writable/directory/hogehoge/);
ini_set('session.gc_maxlifetime', 3*60*60); // 3 hours
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);
ini_set('session.cookie_secure', FALSE);
ini_set('session.use_only_cookies', TRUE);
session_start();
?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。