请帮我处理php会话。
我的服务器上有php 5.5.21。
我有用户和管理员。
用户会话我保存到默认会话目录,但管理员保存到另一个(以提供更长的生存时间)。
我的问题是,我无法将管理会话存储到另一个目录,而且它的消亡速度比我需要的更快。
<?php
function isAdmin()
{
return true;
}
$path = session_save_path(); // /var/lib/php5
if (isAdmin()) {
$ttl = 36000;
$path .= '/sessionAdmin';
} else {
$ttl = 1440;
$path .= '/session';
}
session_save_path($path);
ini_set('session.gc_maxlifetime', $ttl);
ini_set('session.cache_expire', $ttl);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
session_start();
此外,我将这些目录添加到open_basedir '/var/www/vhosts/site.com:/usr/share/pear:/var/lib/php5/session:/var/lib/php5/sessionAdmin'
但这对我没有帮助,所有新会话都保存在目录/var/lib/php5
中
而不是在CCD_ 3处。
我找到了解决方案!
我的虚拟主机的设置为:php_admin_value session.save_path /var/lib/php5
因此:
任何使用php_admin_value设置的指令类型都不能被.htaccess或ini_set()重写
我从虚拟主机中删除了此设置,所有设置都正常工作。
感谢大家的帮助!!!