有人可以确切地解释如何使会话在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');
但是它们似乎都不起作用。
任何想法?
确定-我已经找到了可行的方法并且可以工作-在.htaccess中,我只是添加了以下内容以将超时时间增加到5小时:
php_value session.cookie_lifetime 18000
php_value session.gc_maxlifetime 18000
在许多共享主机上,所有会话都存储在同一位置。由于垃圾收集的工作方式,这意味着在最短的GC间隔后每个人的会话都会被删除。
一种解决方法是:
php_value session.save_path "/my/personal/path"
php_value session.gc_maxlifetime "3600"
或者,您可以设置custom session save handler。请尝试先更改保存路径,因为自定义处理程序有点棘手。
与php-fpm结合使用,您可以使用.user.ini
代替目录中的.htaccess文件(像.htaccess文件一样递归工作。)>
.user.ini
请参见
session.cookie_lifetime=18000 session.gc_maxlifetime=18000
,以了解更改后何时应用这些值。