php session 反序列化

 

session.serialize_handler stringsession.serialize_handler 定义用来序列化/解序列化的处理器名字。 当前支持 PHP 序列化格式 (名为 php_serialize)、 PHP PHP 内部格式 (名为 phpphp_binary) 和 WDDX (名为 wddx)。 如果 PHP 编译时加入了 WDDX 支持,则只能用 WDDX。 自 PHP 5.5.4 起可以使用 php_serializephp_serialize 在内部简单地直接使用 serialize/unserialize 函数,并且不会有 phpphp_binary 所具有的限制。 使用较旧的序列化处理器导致 $_SESSION 的索引既不能是数字也不能包含特殊字符(| and !) 。 使用 php_serialize 避免脚本退出时,数字及特殊字符索引导致出错。 默认使用 php

 

反序列化方法 可使用session_decode()

<?php
// if session is not started
session_start();

// store our current session
$my_sess = $_SESSION;

// decode $data (the encoded session data, either from a file or database). Remember, decoded data is put directly into $_SESSION
session_decode($data);
$data = $_SESSION;

print_r($data);

// restore our own session
$_SESSION = $my_sess;

?>

 

http://blog.spoock.com/2016/10/16/php-serialize-problem/

Linux 命令

lsof

lsof -p 端口号 可查看端口打开了哪些文件

查看端口现在运行的情况

lsof -i:port

netstat

netstat -antp|grep CLOSE_WAIT

常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

 

http://www.ttlsa.com/linux/linux-command-lsof-study/

MySQL wait_timeout

mysql wait_timeout 是指MySQL多久未收到请求,就关闭连接所用时间。

默认php 不需要调用mysql_close() 也会自己断开连接。

最近遇到一长时间运行程序,由于wait_timeout设置时间为10s 而此程序 每循环一次也sleep 10s ,程序未调用关闭MySQL,导致每次 MySQL都断开连接,因而产生大量close_wait连接。

主动关闭后,close_wait 不再产生。

 

http://blog.itpub.net/22664653/viewspace-2143671/

浅谈CLOSE_WAIT