php - Memcache 连接但不响应任何命令

标签 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。

问题:

类似于 Unresolved 问题cannot store values into memcacheSuper strange PHP error

这些线程都没有解决问题,问题的作者也没有遵循给出的建议。我都照着做了,还是不行。

如果我通过 PHP 连接,

Memcache 代码不会显示任何错误,但一旦我尝试执行任何命令(例如 getVersion),我得到回复:

注意:memcache_get_version() [function.memcache-get-version]:服务器 127.0.0.1 (tcp 11211) 失败:无法从/var/www/html/memcache 中的流 (0) 读取行。 php 第 11 行

尝试的解决方案:

通过命令行连接到内存缓存不起作用。在我输入任何命令后,连接将关闭。

[/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 以确保 memcached 是在禁用 SASL 支持的情况下编译的。 响应:“此服务器未构建有 SASL 支持。”

此外,其中一条评论是

You may be running memcached without ASCII protocol support, such as if you ran:

 $ memcached -B binary

If this is the case, remove the -B argument entirely, and PHP and telnet should work.

memcache 起始行是:

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

其中没有 B 参数。

有什么想法吗?

最佳答案

谁可能会感兴趣。

问题已解决。

这就是问题所在(也许它可以帮助作者解决两个相关的问题)。

在共享主机上有时您不应该使用 127.0.0.1。相反,请使用站点的 IP 地址。

变化如此

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

memcached -d -m 1024 -u root -l 123.456.789.123 -p 11211

和 PHP 代码来自

$memcache->pconnect("127.0.0.1",11211);

$memcache->pconnect("123.456.789.123",11211);

解决了这个问题。

谢谢大家!

关于php - Memcache 连接但不响应任何命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045187/

相关文章:

php - Amazon ElastiCache Memcached/Redis:将IP范围映射到国家/地区

PHP session 无法与 memcached 一起使用

php - 扫描项目查看代码覆盖率php

php - 具有 id 和 Parentid 结构的递归有序数组

php - 维基百科使用了什么样的缓存机制?

c - 如何在 C 程序中打印与输入字符最接近的字母数字?

c++ - 使用 CUDA 在主机设备中将 char 转换为 int

c++ - ASCII 值一无所获

php - Laravel 过滤所有列中的值

php - 错误 : Error creating contact table: No database selected