2011-02-08 18 views
1

私のアプリセッションは約15分後に予期せず終了する問題があります。私は4時間後に期限切れにする必要があります。PHPセッションの期限切れが遅すぎる

サーバーはCentos 5.5、PHPは5.3.2です。

以下は私のコードです(グローバルヘッダーに含まれています)。

<?php 
session_name('MobileSuiteHQ'); 
if(!session_id()) { 
    session_start(); 
} 
ini_set('memory_limit', '512M'); 
ini_set('session.gc_maxlifetime', 14400000); 
ini_set('session.cookie_lifetime', 14400000); 
ini_set('session.gc_divisor', 1000); 
ini_set('session.use_cookies', 0); 
ini_set('max_execution_time', 300); 
ini_set('session.name','MobileSuiteHQ'); 
?> 

私の.htaccessファイルが含まれています

php_value session.gc_maxlifetime 14400000 
php_value session.cookie_lifetime 14400000 
php_value session.use_cookies 0 
php_value session.gc_divisor 1000 

すべてのヘルプや洞察力がGREATFULだろう。

EDIT:.htaccessファイルを更新したときにログインできませんでした。セッションが開始されていませんでした。だから私は今削除しました:

php_value session.use_cookies 0 

これで私はログインすることができます。

+0

リクエストにCookieが入っていますか?セッションはクライアント側で終了しているのか、サーバー側で終了していますか? – profitphp

+0

しかし、セッションは一般的にうまくいくのですよね? – Gumbo

+0

@profitphp:セッションIDのCookieの使用が無効になっています(* session.use \ _cookies *を参照)。 – Gumbo

答えて

3

最初の検査で、gc_maxlifetimeとcookie_lifetimeの設定を下げました。理論的には、32ビットOSが2147483647まで上がるはずですが、それでもまだ問題になる可能性はありますが、14400000はPHPが対処するには少し高いと思われます。

4時間の寿命が必要な場合は、14400が完璧な設定になり、上記の理由で問題が解決する可能性があります。

+0

14400000は4時間(ミリ秒)です。私はそれが役立つかどうか、またサーバーが64ビットであることを確認するためにそれを下げます。 –

+4

しかし、cookie_lifetimeは秒単位の値を期待しています:) –

+0

新しい設定を反映するように更新しました。 –

5

私はCentOSについて知っていませんが、Ubuntuではphp5パッケージが/etc/cron.d/php5ファイルをインストールします。このファイルは、毎時9時と39時に「24分」のセッションファイルを削除します。したがって、最低24分、最大54分のセッションがあります。

+0

ありがとうございました.Nateさん、mysqlセッションソリューションに変更しました。 –

関連する問題