最近、xamp を実行している Windows 2003 サーバーから、PHP バージョン 5.3.3 を使用して apache を実行している Centos サーバーに移行しました。
元々、ユーザーが約 24 分後にログアウトされるという問題があったため、INI 変数を変更しsession.save_path
て問題を解決しました。しかし、何人かのユーザーはいまだ定期的に当社のウェブサイトからログアウトされています。異なる時間に異なるブラウザを使用している複数のユーザーに発生します。ページが未使用のままになっている場合もありますが、あるページから別のページを閲覧している場合もあります。
セッション関連の INI 設定は次のとおりです。
session.save_handler = files
session.save_path = "/var/sessions"
session.use_cookies = 1
;session.cookie_secure =
;session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 86400
session.cookie_path = /
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 86400
session.bug_compat_42 = Off
session.bug_compat_warn = On
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
session.cache_limiter = nocache
最初は、ブラウザーの Cookie に問題があるのではないかと考えました。コードで 24 時間後に Cookie が期限切れになるように設定されていても、ユーザーの 1 人が Cookie を無期限に設定していたためです。しかし、Cookie を削除して再度ログインさせた後、Cookie は適切に 24 時間に設定され、時期尚早にログアウトされるという同じ問題が発生しました。
セッションが tmp ディレクトリから移動されたため、毎朝午前 4 時にすべてのセッションを削除する cron ジョブ スクリプトを作成しました。
今日、サーバー上のセッションが削除されていないことを発見しましたが、ユーザーがサーバーに既存のセッションをまだ持っているにもかかわらず、ユーザーが再度ログインすると、新しいセッション ID を持つ新しいセッションが作成されています。
どんな援助でも大歓迎です。