无法将php会话存储到另一个目录

时间:2015-02-18 07:57:06

标签: php session configuration

请用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
不在/var/lib/php5/sessionAdmin

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!
在我的虚拟主机的设置中:
php_admin_value session.save_path /var/lib/php5
因此this
任何使用php_admin_value设置的指令类型都不能被.htaccess或ini_set()覆盖。
我从虚拟主机中删除了这个设置,一切正常。

谢谢大家的帮助!!!