Memcache подключается, но не отвечает на любую команду

Настройка: 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. 

Я пробовал $ memcached -S чтобы убедиться, что memcached был скомпилирован с отключенной поддержкой SASL. Ответ: «Этот сервер не построен с поддержкой SASL».

Кроме того, один из комментариев был

Возможно, вы используете memcached без поддержки протокола ASCII, например, если вы запустили:

  $ memcached -B binary 

Если это так, полностью удалите аргумент -B , и PHP и telnet должны работать.

Стартовая строка memcache:

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

Нет аргумента B в нем.

Есть идеи?

Кому это может быть интересно.

Проблема решена.

Здесь проблема была (возможно, это помогло бы авторам из 2 связанных между собой протекторов).

Иногда на общем хостинге вы не должны использовать 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); 

исправлена ​​проблема.

Всем спасибо!

Я хотел бы поговорить с вашим sys sadmin. Я думаю, что, возможно, задействован брандмауэр.