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

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

  • 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
commerce-operations-help-configuration