将PHP会话存储在共享磁盘中

时间:2016-01-18 07:28:01

标签: php session

是否可以将PHP会话文件存储在由多个实例共享的磁盘上?这样,用户可以向不同的服务器发送请求,并且他将拥有相同的会话数据。

这种方法有哪些缺点或风险? (我知道这不能很好地扩展,并且存在性能问题,但我们假设在此阶段性能和可扩展性并不重要)

3 个答案:

答案 0 :(得分:0)

您必须在所有实例(服务器)上使用通用且已挂载(NFS客户端)的NFS服务器,这将最终为会话存储和访问提供一个共同的位置。有关详细信息,请查看this

答案 1 :(得分:0)

根据PHP手册,它可以完成,实际上其中一条评论提到成功实现了这一点,你就是这样 http://php.net/manual/en/function.session-save-path.php#80901

答案 2 :(得分:0)

你可以做到,但它可能不是一个好选择。使用NFS,由于锁定模式,您将获得较差的性能,并且它不会很好地扩展。

为了存储PHP会话并在机器之间共享它们,强烈建议使用外部服务 - memcachememcachememcached PHP扩展提供易于设置 - 会话存储模块),或redis,甚至是关系数据库(例如MySQL)。在大多数情况下,所有这些都是比NFS更好的选择。