質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • PHP

    21363questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTTP

    570questions

    HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

  • EC-CUBE

    299questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

  • セッション

    96questions

    Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

【HTTP、PHP】セッション削除の仕様について教えてください

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 782

tomoyuki123

score 204

EC-CUBEで開発しています。
以下の設定だと、他のセッションを更新する時に1000分の1の確率で、7200秒(2時間)更新されていないセッションレコードが削除されるとのことですが

[PHP設定] session.gc_probability = 1
[PHP設定] session.gc_divisor = 1000
[ECCUBEのセッションタイムアウト] MAX_LIFETIME = 7200

この1000分の1という意味がよくわからないです。
サーバにあるセッションが複数あったときにランダムで削除されるのでしょうか?
セッションによっては2時間どころか24時間以上経っても生き残るのもあるのでしょうか。

すみませんがどなたか教えてください。
よろしくお願いします。

参考にしたURL
http://ec-cube.systemfriend.co.jp/consult/consult0027/

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

EC-CUBEを使用していないので…PHP観点で回答させていただきます。
PHP言語のサイトですが、同じ設定なので参考になると思います。(もう見ているかもですが…)
http://pentan.info/php/session_gc.html#gctiming
http://monolog.spanstyle.com/2005/07/session.html
http://ameblo.jp/atrem/entry-10411510307.html

質問者様の認識で概ね間違いないと思います。
削除対象はセッションというより、$_SESSIONに値が入った際に作成されるセッションファイルです。php.iniのsession_pathを見るとどこにセッションファイルが作成されているかわかります。

質問者様の設定だと
例えばECサイトで1000のセッションファイルが溜まっている場合、そこからユーザのアクセスなどで新たに1ファイルが作成されようとした時に、最終アクセスから2時間経っているファイルの中からランダムで削除するファイルを選択します。

これが高頻度でセッションファイルが作られるサービスであれば、24時間後に生き残るということはないと思います。逆に1日に500アクセスしかなければ、500ファイルしか削除されないので24時間生き残る可能性もあります。
極力セッションファイルを残したくない場合は、アクセス数を見て設定を見直すと良いかと。

ご参考までにmm

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/27 10:55

    とてもわかりやすい説明ありがとうございました!

    キャンセル

同じタグがついた質問を見る

  • PHP

    21363questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTTP

    570questions

    HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

  • EC-CUBE

    299questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

  • セッション

    96questions

    Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。