我已经粘贴了php.net的例子,在php中使用memcached,我得到了:
Fatal error: Class 'Memcache' not found
我的PHP里有这个。ini:
[memcache]
memcache.hash_strategy =“consistent”
memcache.max_failover_attemps = 100
memcache.allow_failover = 1
以下是php -i和php -m的信息:
php-i|grep -i memcache
内存缓存
memcached support =〉enabled
libmemcached version =〉0。37
注册的保存处理程序=〉文件用户sqlite memcached
php-m|grep -i memcache
内存缓存
所以php似乎已经把memcached作为模块加载了,phpinfo说它已经加载了,并且正在使用v37.我还没有通过apache尝试过,我现在只通过cli使用这个。有什么想法吗
7条答案
按热度按时间pbwdgjma1#
PHP中有两个memcached扩展名,“memcache”和“memcached”。
看起来您试图使用一个(“memcache”),但另一个已经安装(“memcached”)。
在这个答案写出来的13年里,PHP社区发生了很大的变化。旧的memcache扩展似乎没有维护,所以如果可以的话,请使用memcached扩展。无论如何,这是一个更好的选择!有关最新的安装和构建链接,请参阅this other answer below。
i7uaboj42#
不管评论中接受的答案是什么,安装'Memcache'的正确方法是:
注意Memcache和Memcached是两个不同但相关的软件,经常被混淆。
编辑由于这是一个旧帖子,我认为值得一提的是,你应该用你的php版本号替换php5。
pcrecxhr3#
我在这篇文章中找到了解决方案: www.example.com
我找到了PHP 5的工作dll文件。4.4
我不知道他们有多稳定,但他们肯定工作。信用卡都指向这个链接。
http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip
http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip
它是 www.example.com .4.4)。
请注意,它不是2。2.6但工作。我也在自己的FTP中镜像了它们。镜像链接:
http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.ziphttp://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip
4c8rllxm4#
对于OSX用户:
运行以下命令安装Memcached:
klh5stk15#
为了避免混淆,因为这是一个老问题,一个小的序言:
rubo77通过放置赏金并要求规范答案来刷新此问题。阅读有点旧但仍然有效的答案--见ESP。accepted一个,我意识到确实有一些基本但重要的,可以说规范的,链接错过了。
因此,这里将提供的不是一个典型的答案本身-这可能会改变多年的细节-但将提供答案的典型链接。
The Missing Link
抱歉,关于化石的笑话。好吧,回到严肃的主题。回答这个问题的主要规范来源当然是php.net,更确切地说:
用于Memcached和Memcache的广泛且最新的ServerPilot installation guide也非常有用。
问题来了:PHP 8怎么样?让我们看看各自的存储库,PHP Extension Community Library (PECL),我们发现:
因此,这些来源应该是第一个寻找的地方(当然是在Stackoverflow之后),然后再开始更深入的网络搜索活动(不会产生更多的结果,tbh)。
vulvrdjw6#
右边是php_memcache。dll。在我的例子中,我使用的是vc9编译的lib,而不是vc6编译器。在apatche错误日志中,我得到了类似于:
PHP启动:sqlanywhere:无法初始化模块Module compiled with build ID=API20090626,TS,VC9 PHP compiled with build ID=API20090626,TS,VC6这些选项需要匹配
检查是否有相同的日志,并尝试下载使用不同编译器编译的不同dll。
dy1byipe7#
我进入wp-config/删除对象缓存。php和advanced cache。PHP,它对我来说很好。