会话存储位置
本主题讨论如何定位会话文件的存储位置。 系统使用以下逻辑来存储会话文件:
-
如果配置了memcached,则会话存储在RAM中;请参阅将memcached用于会话存储。
-
如果配置了Redis,则会话存储在Redis服务器上;请参阅将Redis用于会话存储。
-
如果您使用的是默认的基于文件的会话存储,则会按照显示的顺序将会话存储在以下位置:
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个请求一个垃圾收集调用的概率__)。
垃圾收集处理程序使用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
],
根据流量和商户网站的特定需求,配置会有所不同。
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c