我刚在我的Mac OS X 10.6.8上安装了memcached。 它完美安装,当我在terminalinputmemcached我得到这个:
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 ps -e | grep memcache | grep -v grep ps -e | grep memcache | grep -v grep你可能会看到它。 netstat -a -p tcp | grep LISTEN的输出 netstat -a -p tcp | grep LISTEN会显示所有的监听服务,这可能会有所帮助。
第二个问题可能是因为您没有为您的PHP版本安装memcache扩展(从我假设您使用PHP的错误)。 你可能想要http://pecl.php.net/package/memcache来解决这个问题。
Memcache已经可以运行了。 我有一个崩溃版本的memcache运行,并得到了这个问题。
我发现这有帮助:
netstat -l --protocol=tcpip --program
一旦我有了pid,我就杀死了memcache
然后我编辑了configuration
vi /etc/sysconfig/memcached
我补充说
OPTIONS="-l 127.0.0.1"
我也遇到了你报告的第一个错误:
failed to listen on TCP port 11211 tcp listen: Address already in use
在我的configuration中,我发现错误是由多个-l参数到同一地址引起的。 在Ubuntu上,我的/etc/memcached.conf文件包含:
-l localhost -l 127.0.0.1
memcached能够成功绑定到第一个地址,但由于127.0.0.1 localhost重复,因此memcached Address already in use尝试绑定到第二个地址时给出了Address already in use错误。
如果遇到此错误,并且找不到与您的端口绑定的现有stream程,请仔细检查您的memcachedconfiguration。 如果您正在侦听多个地址上的连接,请确保这些地址不代表相同的地址。 这样的设置可能会导致这个错误。