設置: Apache; PHP 5.2.9; libevent(對於memcached是必需的)版本1.3; memcached服務器版本1.2.2(試過1.4.5,1.4.0,現在降級到1.2.2,沒有什麼區別); memcached php pecl模塊版本2.2.6。Memcache連接但不響應任何命令
問題:
未解決的問題cannot store values into memcache和這些線程的Super strange PHP error
無類似已經解決了問題,沒有問題的作者,隨後建議給出。我跟着他們,但它仍然不起作用。
Memcache
代碼並不顯示任何錯誤,如果我通過PHP連接,但只要我試圖執行任何命令(如getVersion
),我得到的迴應:
Notice: memcache_get_version() [function.memcache-get-version]: Server 127.0.0.1 (tcp 11211) failed with: Failed reading line from stream (0) in /var/www/html/memcache.php on line 11
嘗試的解決方案:
通過命令行連接到memcache不起作用。我鍵入任何命令連接關閉後。
[/usr/local/src]$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
Connection closed by foreign host.
我試圖$ memcached -S
,以確保分佈式緩存是在禁用SASL支持編譯。 響應:「該服務器不是用SASL支持構建的。」
此外,意見之一是
您可能正在運行的memcached沒有ASCII協議的支持,例如,如果你運行:
$ memcached -B binary
如果是這樣的情況下,刪除
-B
參數完全,PHP和Telnet應該工作。
內存緩存啓動行是:
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211
在它沒有B的說法。
任何想法?
它會阻擋什麼?我的意思是如果連接經過,它不能阻塞11211端口,對吧? – glum 2011-05-23 16:15:58