开发者

Memcache connects but doesn't respond to any command

Setup: Apache; PHP 5.2.9; libevent (for memcached it's required) version 1.3; memcached server version 1.2.2 (tried 1.4.5, 1.4.0, now downgraded to 1.开发者_JS百科2.2, no difference); memcached php pecl module version 2.2.6.

Problem:

Similar to unresolved problems cannot store values into memcache and Super strange PHP error

None of those threads had resolved issue and none of the authors of questions followed recommendations given. I followed them all, and it still doesn't work.

Memcache code doesn't show any error if I am connecting via PHP, but as soon as I'm trying to execute any command (such as getVersion), I get the response:

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

Solutions tried:

Connecting to memcache via command line is not working. After I type any command connection is closing.

[/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.

I tried $ memcached -S to make sure memcached was compiled with SASL support disabled. Response: "This server is not built with SASL support."

Also, one of the comments was

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.

The memcache start line is:

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

No B argument in it.

Any ideas?


To whom it might be interesting.

Issue resolved.

Here is where problem was(maybe it would help authors from 2 related treads).

On shared hosting sometimes you shouldn't use 127.0.0.1. Instead, use site's IP address.

So changing

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

to

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

and PHP code from

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

to

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

fixed the issue.

Thanks everyone!


I would talk to your sys sadmin. I think the there maybe a firewall involved.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜