最近在搭建机房容灾账号系统的集群,线上跑的集群LNMP的环境是源码编译安装的,新集群的环境我是yum安装,新集群跑程序员的代码就是不行,最后查出问题是session不能保存,
用测试代码测试:
vi a.php
<?php
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', "172.28.28.118:11211");
session_start();
$_SESSION['aa'] = "bb";
echo session_id();
?>
访问获取到session ID,在memched服务器中 get session 是可以获取到数据的,说明环境是没有问题的,我就一直纠结在编译安装和yum安装,查了好久,昨天我同事帮找到了问题:
/etc/php-fpm.d/www.conf 中默认配置了session的保存路径
php_admin_value[session.save_path] = /var/lib/php/session
而yum安装php的memched扩展配置memched路径在/etc/php.d/memcache.ini 中,我在这里配置session保存到memched中:
session.save_handler=memcache
session.save_path="tcp://172.28.28.142:11212"
两个地方都配置了session的保存路径,所以程序不知道往那写了,导致一些奇怪的问题发生。注释掉/etc/php-fpm.d/www.conf 中的就好了
telnet 172.28.28.142 11212
flush_all(清空memched数据)
转载于:https://blog.51cto.com/navyaijm/1109569