我试图建立分布式缓存,允许在2负载平衡的Apache服务器会话共享的工作 - 在我的php.ini我:PHP会话不memcached的
节点1
session.save_handler = memcached
session.save_path = "tcp://NODE1_IP:11211"
和
节点2
session.save_handler = memcached
session.save_path = "tcp://NODE2_IP:11211"
在/ etc/SYSCONFIG /分布式缓存,我有:
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"
在的phpinfo我:
session.save_handler memcached memcached
session.save_path tcp://NODE1_IP:11211 tcp://NODE1_IP:11211
当我登录到我的应用程序已经在登录页面和检查,如果用户登录页面上的在session_start但是当我:
print_r($_SESSION);
由于会话看起来没有被设置,所以没有显示。值得注意的
的一件事是在的phpinfo我在会议部分,顶部看到这几行:
Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary wddx
登记保存处理程序列出了有关memcached的文件和用户,但没有 - 也许这可以解释为什么这是不工作?我怎样才能改变/添加到?
如若node1_ip是公共或私有IP或者没有关系呢?
我可以telnet到本地主机11211而不是NODE1_IP 11211 - 获得连接拒绝。端口11211已打开 - 尝试将/ etc/sysconfig/memcached更改为“-l NODE1_IP:11211”但仍然连接被拒绝
如果我将/ etc/sysconfig/memcached中的选项更改为“可以telnet到NODE1_IP 11211,这样看来我放入memcached config的格式是错误的?
还有什么我需要做的吗?我尝试使用实际IP地址更改保存路径,添加和删除tcp,使用127.0.0.1,使用以逗号分隔的所有IP地址,但仍无法使其工作。
如何在NODE1_IP和NODE2_IP上同步memcached? –
已尝试在两个节点以及/ etc/sysconfig/memcached中的OPTIONS中设置session.save_path =“tcp:// NODE1_IP:11211,tcp:// NODE2_IP:11211”,但这似乎没有任何区别 – bhttoan
@bhttoan我有一个真正的噩梦让memcached在我的负载均衡器后面工作,最终转而使用redis。我有一个简单的时间,因为我的应用程序是用Laravel构建的。出于兴趣,你是否在使用框架? – Spholt