我多年来一直使用memcache存储PHP会话,喜欢它。性能很好,它不会在磁盘上创建数千个文件。
我已经在Debian上运行了PHP 5.6。
在PHP session instructions之后,您需要在php.ini文件中添加两个添加两个条目,以获取存储在memcache中的会话。像这样:
session.save_handler = memcache
session.save_path = "tcp://192.168.1.100:11211"
我已经做到了,多年来一直很努力。
我能做的不是定义多个服务器。同一个PHP文档页面说你应该能够像这样定义多个服务器:
session.save_path = "tcp://192.168.1.100:11211,tcp://192.168.1.101:11211"
我相信当您定义多个服务器时,PHP应该将会话数据写入每个服务器 - 因此您有冗余。我想要那种冗余。
我的问题是,一旦我定义了多个服务器,PHP就会停止工作并转储如下错误:
session_start(): Failed to initialize storage module: memcache (path: tcp://192.168.1.100:11211,tcp:192.168.1.101:11211)
我可以单独使用任何一个memcache服务器和PHP,所以我知道它们都在工作,如果单独定义,PHP可以连接到它们。那么当我定义两者时,PHP的问题是什么?
答案 0 :(得分:0)
您需要在session_redundancy
中为Memcache PHP扩展设置memcache.ini
。
memcache.session_redundancy指令必须等于数字 memcached servers + 1用于要复制的会话信息 到所有的服务器。这是由于PHP中的一个错误。
请参阅this post。