Windows/Temp目录中充满了阻塞服务器的Php Session's文件


Windows/Temp directory is full of Php Session's files that block the server

大家好,我是意大利人,我提前为下面的错误道歉:)

对于我的服务器来说,这是黑暗的日子,我简直要疯了,不知道到底是什么问题。我认为数据库配置不好,或者硬盘可能有问题,我正在考虑更换服务器。当它用碎片整理和扫描磁盘(不可运行)测试硬盘时,我决定打开CCleaner,奇迹发生了。Windows/Temp文件夹被完全封锁了,你甚至无法打开IT。CCleaner在10个小时内清理了这个文件夹:’)一个文件夹10个小时!

经过一天的清理,今天早上我去检查它,里面有18000个0kb或最大10kb的文件,都叫"sess_0a5u2ou87 ........."(sess_是前缀,我认为后面是md5)。

当我打开其中一个时,我发现里面有我网站用户的会话变量。

var|s:1:"2";timeout|i:1403338177;id|s:1:"1";name|s:17:"Foo";
下面是我创建会话的示例:
//create session
session_start();
$_SESSION['var'] = $var;
$_SESSION['timeout'] = time();
//work with session
public static function resetVar(){
   if(isset($_SESSION['var'])){
            unset($_SESSION['var']);
        }
}
//destroy session
session_start();  
if(isset($_SESSION['timeout'])) {       
    $duration = time() - (int)$_SESSION['timeout'];
    if($duration > 6000) {
        session_destroy(); 
    header("Location: index.php");
    }
    $_SESSION['timeout'] = time();
}     
有谁能帮我理解这个吗?

我能够解决这个问题。更改PHP保存会话的文件夹就足够了。更改它,文件"sess_…"超过一个小时,将被自动删除!我认为Php试图删除Windows/Temp文件夹中的文件,但可能是权限问题,他不能。

您可以通过更改"session.save_path"的值来更改php设置(php.ini)中的路径

我有同样的问题,但我看到一个PHP MYSQL PDO驱动程序缺失错误。

 could not find driver
经过一番挖掘,我才发现会话目录有15k个文件。删除后,一切都好。

检查管理会话文件生命周期的php变量;

 session.gc_maxlifetime

http://ar.php.net/manual/en/session.configuration.php。