Я только что установил 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. Если вы прослушиваете соединения по нескольким адресам, убедитесь, что эти адреса не представляют один и тот же адрес. Такая установка могла вызвать эту ошибку.