PHP会话超时

问题描述 投票:5回答:3

有人可以确切地解释如何使会话在PHP中持续更长的时间,而不使用php.ini吗?

我已经在.htaccess中尝试了以下内容:

<IfModule mod_php5.c>
    #Session timeout
    php_value session.cookie_lifetime 3600
    php_value session.gc_maxlifetime 3600
</IfModule>

我也尝试过:

ini_set('session.gc_maxlifetime', '3600');

但是它们似乎都不起作用。

任何想法?

php session session-variables session-timeout
3个回答
8
投票

确定-我已经找到了可行的方法并且可以工作-在.htaccess中,我只是添加了以下内容以将超时时间增加到5小时:

php_value session.cookie_lifetime 18000
php_value session.gc_maxlifetime 18000

7
投票

在许多共享主机上,所有会话都存储在同一位置。由于垃圾收集的工作方式,这意味着在最短的GC间隔后每个人的会话都会被删除。

一种解决方法是:

php_value session.save_path "/my/personal/path"
php_value session.gc_maxlifetime "3600"

或者,您可以设置custom session save handler。请尝试先更改保存路径,因为自定义处理程序有点棘手。


0
投票

与php-fpm结合使用,您可以使用.user.ini代替目录中的.htaccess文件(像.htaccess文件一样递归工作。)>

.user.ini

请参见session.cookie_lifetime=18000 session.gc_maxlifetime=18000 ,以了解更改后何时应用这些值。

© www.soinside.com 2019 - 2024. All rights reserved.