php怎么实现session共享,PHP实现session共享

通过修改PHP-FPM配置文件,实现session会话共享:

- 配置PHP使用memcached服务器共享Session信息

- 客户端访问两台不同的后端Web服务器时,Session 信息一致

环境:

- 部署LNMP+memcached网站平台, 参考之前的随笔,这里不做介绍

- Nginx服务器除了承担调度器外,还需要担任memcached数据库的角色,并在两台后端LNMP服务器上实现PHP的session会话共享

拓扑图:

1VQAAAABJRU5ErkJggg==

一, 在后端的两台LNMP服务器上部署Session共享, 以 web1为例(web也需做如下相同操作)

1.为PHP添加memcache扩展

[root@web1 ~]# yum -y install php-pecl-memcache     #两台web服务器都要安装

2.修改PHP-FPM配置文件,并重启服务

[root@web1 ~]# vim /etc/php-fpm.d/www.conf          #注意,只需要修改文件的最后2行

修改前:

php_value[session.save_handler] = files

php_value[session.save_path] = /var/lib/php/session     #默认定义Sessoin会话信息在本地计算机的/var/lib/php/session

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

修改后:

php_value[session.save_handler] = memcache  #定义Session信息存储在公共的memcached服务器上,主机参数中为memcache(没有d)

php_value[session.save_path] = "tcp://192.168.2.5:11211"   #通过path参数定义公共的memcached服务器在哪(服务器的IP和端口)

[root@web1 ~]# systemctl restart php-fpm

二, 客户端使用浏览器访问web1和web2,验证Session是否一致

1.  部署 web1 的测试页面

[root@web1 ~]# tar -xf php-memcached-demo.tar.gz    #找一个php的测试页面

[root@web1 php_scripts]# cd php-memcached-demo

[root@web1 php-memcached-demo]# ls

home.php  images  index.php  login.php  README.md  style.css

[root@web1 php-memcached-demo]# cp -r * /usr/local/nginx/html/      #拷贝php页面到Nginx的网页目录下

[root@web1 php-memcached-demo]# vim home.php

[root@web1 php-memcached-demo]# vim index.php

2. 部署 web2 的测试页面

[root@web2 ~]# tar -xf php-memcached-demo.tar.gz    #找一个php的测试页面

[root@web2 php_scripts]# cd php-memcached-demo

[root@web2 php-memcached-demo]# ls

home.php  images  index.php  login.php  README.md  style.css

[root@web2 php-memcached-demo]# cp -r * /usr/local/nginx/html/      #拷贝php页面到Nginx的网页目录下

[root@web2 php-memcached-demo]# vim home.php

[root@web2 php-memcached-demo]# vim index.php

3. 浏览器访问后端服务器web1和web2 的测试页面

[root@web1 ~]# firefox http://192.168.2.100       #在web1网站上注册用户,密码

[root@web1 ~]# cd /var/lib/php/session/

[root@web1 ~]# ls     #查看服务器本地生成的Session信息

sess_qqek1tmel07br8f63d6v9ch401

[root@web2 ~]# firefox http://192.168.2.200       #在web2网站上注册用户,密码

[root@web2 ~]# cd /var/lib/php/session/

[root@web2 ~]# ls     #查看服务器本地生成的Session信息

sess_qqek1tmel07br8f63d6v9ch401

4. 总结

可以看到, 客户端访问两台不同的后端Web服务器时,Session 信息一致,实现共享.

结束.

标签:php,root,web2,session,web1,demo,共享,PHP,memcached

来源: https://www.cnblogs.com/liusingbon/p/11143898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值