Debian squeeze は問題ないのですが、Debian lenny ではすぐログアウト
する問題に悩まされていました。セッションが短いと、こうなるそうです。

/etc/cron.d/php5 を以下のように修正して解決しました。

修正前

09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
修正後
00 6 10,20,30 * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm

セッションの削除を毎時 9,39 分から、毎月 10,20,30 日の 6:00 に変更
しました。数十人くらいしか使わない環境なので、設定は適当です。

PHP のセッションは session.gc_divisor, session.gc_maxlifetime,
session.gc_probability が関係しているそうです。これは以下の cgi で
確認できます。

<?php phpinfo(); ?>

Debian Lenny はこのような設定でした。

session.gc_divisor 100
session.gc_maxlifetime 1440
session.gc_probability 0

session.gc_probability/session.gc_divisor = 0/100 = 0

0 だと PHP からはセッションの削除はしないそうです。

結論

Debian Lenny は、cron が 30 分おきに PHP のセッションを削除する。
cron の設定を変えることで、これを制御できる。

参考情報:
セッション(session)の有効期限を設定するには - spanstyle::monolog