セッションストレージの場所

このトピックでは、セッションファイルが格納されている場所を特定する方法について説明します。 システムでは、次のロジックを使用してセッションファイルを保存します。

  • memcached を設定した場合、セッションは RAM に保存されます。 セッションストレージに memcached を使用を参照してください。

  • Redis を設定した場合、セッションは Redis サーバに保存されます。 セッションストレージに Redis を使用するを参照してください。

  • デフォルトのファイルベースのセッションストレージを使用している場合は、以下の場所に、表示されている順序でセッションが保存されます。

    1. env.php で定義されたディレクトリ
    2. php.ini で定義されたディレクトリ
    3. <magento_root>/var/session ディレクトリ

env.php の例

<magento_root>/app/etc/env.php のサンプルスニペットを次に示します。

 'session' => [
     'save' => 'files',
     'save_path' => '/var/www/session'
 ],

上記の例では、セッションファイルを /var/www/session に保存します

php.ini の例

root 権限を持つユーザーとして、php.ini ファイルを開き、session.save_path の値を検索します。 これは、セッションが格納される場所を識別します。

セッションサイズの管理

ユーザーガイドセッション管理 を参照してください。

ガベージコレクション設定

期限切れのセッションをクリーンアップするために、システムは gc_probability / gc_divisor ディレクティブによって計算される確率に従ってランダムに gcガベージコレクション)ハンドラーを呼び出します。 例えば、これらのディレクティブをそれぞれ 1/100 に設定した場合、1% の確率(100 件のリクエストごとに 1 回のガベージコレクションの呼び出しの確率)を意味します。

ガベージコレクションハンドラーでは、gc_maxlifetime ディレクティブを使用します。このディレクティブは、セッションが ガベージ と見なされてクリーンアップされる秒数を示します。

一部のオペレーティングシステム(Debian/Ubuntu)では、デフォルトの session.gc_probability ディレクティブが 0 なので、ガベージコレクションハンドラーを実行できません。

<magento_root>/app/etc/env.php ファイルの php.ini ファイルから session.gc_ ディレクティブを上書きできます。

 'session' => [
     'save' => 'db',
     'gc_probability' => 1,
     'gc_divisor' => 1000,
     'gc_maxlifetime' => 1440
 ],

設定は、マーチャントの web サイトのトラフィックや特定のニーズに応じて異なります。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c