php跨子域session共享

需求:

有三个个系统:

app1.inspur.com

app2.inspur.com

login.inspur.com

三个系统一级域名相同,想通过共享cookie和session来实现单点登录。

解决办法

实现该功能,须满足两个条件:

1、客户端共享sessionId

2、服务器端共享session数据文件

条件一实现:

默认条件下,cookie的域是当前服务器的域名或者IP地址,上述三个系统二级域名不一样,默认配置下,是无法共享cookie的,我们可以通过修改默认配置,使上述三个系统的cookie都写到同一个域名下。

找到上述三个应用服务器的php.ini文件,将 session.cookie_domain = 的值设置为 .inspur.com ,即

session.cookie_domain = .inspur.com

条件二实现:

同样找到上述三个应用服务器的php.ini文件,修改 session.save_path  和 session.save_handler,php的session文件默认是存储在文件系统中的,为实现共享我们可以修改为数据库储存或者memcache缓存存储。

如:

session.save_path = "tcp://192.168.1.126:11211"

session.save_handler = memcache

相关推荐