这是我的开发服务器上的一组ps文件
498 1575 0.0 0.0 330852 152 ? Ssl Jun14 2:58 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
498 6446 0.0 0.0 330852 152 ? Ssl Jul23 1:09 memcached -d -p 11212 -u memcached -m 64 -c 1024 -P /var/run/memcached-2/memcached-2.pid
所以我可以看到它在那里,我使用zend框架与'Memcached'后端,这是使用一个extension_loaded('memcache'),看看它是否被安装。
是因为他们安装了memcached2吗?但如果是这样,为什么扩展加载函数失败?我不是一个服务器迷,但我猜是在安装过程中出了什么问题?
TL;博士;
为什么extension_loaded('memcache')返回false,当memcached在服务器上运行时?
你混淆了服务器上运行的memcached服务和php扩展(Memcache和memcached),它们需要与正在运行的服务对话。
要在应用程序中使用memcached,必须安装其中一个或两个扩展。(我推荐Memcache(d)。)成功安装扩展后,在服务器上使用下面的命令检查它:
$ php -m | grep memcache
如果你有两个扩展名,输出将是:
$ php -m | grep memcache
memcache
memcached
在你的情况下,Zend框架试图使用memcache扩展(不是memcached),这可能没有安装在你的机器上。
据我所知,memcache不是memcached。检查您是否正在检查正确的扩展(检查memcached)。我没有太多经验,因为我用过redis缓存。
链接:Memcache Vs. Memcached
看起来好像php模块丢失了,但是守护进程正在运行,当我运行php -m时,我没有看到memcache作为已安装的扩展,所以我需要安装它。
@mrarm那个链接确实有帮助!但是memcached的extension_loaded和memcache都返回false,显然我确实需要memcache,但它的守护进程被命名为memcached。愚蠢的命名!