我試圖建立分佈式緩存,允許在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