Назад | Перейти на главную страницу

Проблемы с Memcached «не удалось прослушать TCP-порт 11211»

Я только что установил memcached на свою Mac OS X 10.6.8. Он установлен идеально, и когда я набираю memcached в Терминале я получаю это:

failed to listen on TCP port 11211 tcp
listen: Address already in use

И у меня есть сценарий на моем локальном хосте, который содержит это:

$memcache = new Memcache();

Но я получаю сообщение об ошибке Fatal error: Class 'Memcache' not found.

Как я могу заставить memcached работать, потому что порт 11211 не прослушивается, что, вероятно, не заставляет memcached работать?

Вероятно, ваша первая ошибка связана с тем, что memcached уже запущен. Если ты бежишь ps -e | grep memcache | grep -v grep вы, вероятно, увидите это. Выход netstat -a -p tcp | grep LISTEN также покажет вам все службы прослушивания, которые могут помочь.

Вторая проблема, вероятно, связана с тем, что у вас не установлено расширение memcache для вашей версии PHP (из-за ошибки я предполагаю, что вы используете PHP). Ты наверное хочешь http://pecl.php.net/package/memcache чтобы решить эту проблему.

Memcache уже может быть запущен. У меня работала аварийная версия memcache, и у меня возникла эта проблема.

Я нашел это полезным:

netstat -l --protocol=tcpip --program

Как только у меня был pid, я убил memcache

Затем я отредактировал конфигурацию

vi /etc/sysconfig/memcached

я добавил

OPTIONS="-l 127.0.0.1"

Я также столкнулся с первой сообщенной вами ошибкой:

failed to listen on TCP port 11211 tcp
listen: Address already in use

В моей конфигурации я обнаружил, что ошибка была вызвана несколькими -l аргументы по тому же адресу. В Ubuntu мой /etc/memcached.conf файл содержал:

-l localhost
-l 127.0.0.1

memcached смог успешно выполнить привязку к первому адресу, но поскольку 127.0.0.1 дубликаты localhost, memcached дал Address already in use ошибка при попытке привязки ко второму адресу.

Если вы столкнулись с этой ошибкой и не можете найти существующую привязку процесса к вашему порту, дважды проверьте конфигурацию memcached. Если вы прослушиваете соединения по нескольким адресам, убедитесь, что эти адреса не представляют один и тот же адрес. Такая установка могла вызвать эту ошибку.