【问题标题】:Can't store php session to another directory无法将 php 会话存储到另一个目录
【发布时间】:2015-04-19 03:52:03
【问题描述】:

请帮助我进行 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

【问题讨论】:

  • 你检查目录的权限了吗?
  • 您的会话(对于用户和管理员)是否保存到 /var/lib/php5 或 /var/lib/php5/session 或 /var/lib/php5/sessionAdmin ?
  • 总是 /var/lib/php5

标签: php session configuration


【解决方案1】:

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

感谢大家的帮助!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2019-03-09
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    相关资源
    最近更新 更多