本文源链接地址:https:www.93bok.com
实验环境: Centos6.5minimal 64位系统
服务器IP:192.168.10.22
说明:
1. LNMP+Memcached环境搭建不再演示,可参考之前文章
2. 相信大家也看到了,文章的后边加了(不建议)的后缀,说说原因吧:
A、如果用memcached存储Session,那么当memcached集群发生故障(比如内存溢出)或者维护(比如升级、增加或减少服务器)时,用户会无法登录,或者被踢掉线
B、memcached 的回收机制可能会导致用户无缘无故地掉线
方法一:通过PHP配置文件使用memcached缓存session
1、配置PHP
Session的数据默认情况下,保存在file文件中,我们可以通过修改php的配置,让其保存在其它地方:
vim /etc/php/php.ini
session.save_handler = memcached
session.save_path = "192.168.10.22:11211"
2、重启php-fpm
service php-fpm restart
3、测试一下
vim /a01/apps/nginx/html/session.php
<?php
//set_session
session_start();
$_SESSION[‘name‘]=‘nongkaige‘;
?>
<?php
//get_session
session_start();
$name=$_SESSION[‘name‘];
echo $name;
?>
http://192.168.10.22/session.php
输出nongkaige正确
但是如果获取session变量的时候,不再是name属性,而是通过session_id来保存的:
vim /a01/apps/nginx/html/session_id.php
<?php
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>
http://192.168.10.22/session_id.php
方法二:通过ini_set() 使用memcached缓存session
上一种方法是修改的PHP配置文件,那如果我不是管理员,没有权限修改PHP配置文件呢,这时候ini_set()可以在php网站中,设置memcached缓存session
vim /a01/apps/nginx/html/ceshiye.php
<?php
ini_set(‘session.save_handler‘,‘memcached‘);
ini_set(‘session.save_path‘,‘192.168.10.22:11211‘);
session_start();
$_SESSION[‘age‘]=‘huanglihua‘;
$sess_id=session_id();
var_dump($sess_id);
?>
原文地址:https://www.cnblogs.com/93bok/p/9679881.html
时间: 2024-11-01 10:02:21