glu*_*lum 2 php memcached ascii sasl
设置: 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和超级奇怪的PHP错误中
这些线程都没有解决问题,并且没有一个问题的作者遵循给出的建议.我跟着他们一切,但仍然无效.
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.
Run Code Online (Sandbox Code Playgroud)
我试图$ memcached -S确保在禁用SASL支持的情况下编译memcached.响应:"此服务器不是使用SASL支持构建的."
此外,其中一条评论是
您可能正在运行没有ASCII协议支持的memcached,例如,如果您运行:
Run Code Online (Sandbox Code Playgroud)$ memcached -B binary如果是这种情况,请
-B完全删除参数,PHP和telnet应该可以正常工作.
memcache起始行是:
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211
Run Code Online (Sandbox Code Playgroud)
没有B论证.
有任何想法吗?
它可能是有趣的.
问题解决了.
这就是问题所在(也许它可以帮助2个相关踏板的作者).
在共享主机上,有时您不应该使用127.0.0.1.而是使用网站的IP地址.
如此变化
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211
Run Code Online (Sandbox Code Playgroud)
至
memcached -d -m 1024 -u root -l 123.456.789.123 -p 11211
Run Code Online (Sandbox Code Playgroud)
和来自的PHP代码
$memcache->pconnect("127.0.0.1",11211);
Run Code Online (Sandbox Code Playgroud)
至
$memcache->pconnect("123.456.789.123",11211);
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
感谢大家!