2010-04-17 63 views
72

我贴的例子从php.net在PHP中使用Memcached和我越来越: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
memcached support => enabled
libmemcached version => 0.37
Registered save handlers => files user sqlite memcached

php -m | grep -i memcache
memcached

所以PHP似乎已经加载MEMC疼痛作为一个模块,和PHP信息说,它已加载并使用诉.37。我还没有通过Apache尝试,我现在只通过cli使用它。有什么想法吗?

+1

可能重复... HTTP://stackoverflow.com/questions/1171313/memcache-not -found-in-command-line-php-script – 2010-04-17 16:10:57

+0

我只是看了一下,我已经有了我的php.ini中列出的扩展名,我已经确保我的extension_dir指向正确的位置。 – jpfuentes2 2010-04-17 16:26:24

+0

查看我的答案,下面是安装'MEMCACHE'的简单命令。 – 2016-11-22 11:15:29

回答

111

在PHP中有两个memcached扩展,“memcache”和“memcached”。

它看起来像你试图使用一个(“memcache”),但另一个是安装(“memcached”)。

+4

这很愚蠢,但它是PHP中不幸的频繁模式。与其更新较旧的扩展以更好的方式处理较新的事物,而不是更新旧的扩展,他们只是创建了新的扩展。另请参阅mysql和mysqli。 – Charles 2010-04-17 20:48:48

+0

这似乎是正确的问题。但是我发现的所有说明似乎都说要安装memcached,但看到memcache。这有点令人困惑。 – pthurmond 2013-06-27 18:02:44

+6

好的,我发现一个简单的修复(因为一切似乎不起作用)。只需运行以下命令:sudo aptitude install memcached php5-memcached – pthurmond 2013-06-27 18:36:20

0

右侧是php_memcache.dll。在我的情况下,我使用编译与vc9而不是vc6编译器的lib。在apatche错误日志我得到的东西,如:

PHP Startup: sqlanywhere: Unable to initialize module Module compiled with build ID=API20090626, TS,VC9 PHP compiled with build ID=API20090626, TS,VC6 These options need to match

检查,如果你有相同的日志,并尝试下载与不同编译器编译不同的dll。

1

我发现在这篇文章的解决方案:https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

我找到了工作的DLL文件到PHP 5.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

这是2.2.5.0版本,我编译它(对于PHP 5.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

-5

我走进WP-配置/和删除的对象-cache.php和和先进-cache.php和与它为我工作得很好。

+1

哈哈,对你有好处;) – Piero 2017-01-27 16:55:47

19

Dispite什么公认的答案在评论中说,安装“内存缓存”正确的做法是:

sudo apt-get install php5-memcache 
+0

几年后,我觉得这个答案已经过时了。 'sudo apt-get安装php-memcache'是为我工作的。 https://packages.ubuntu.com/search?keywords=memcache&searchon=names&suite=yakkety§ion=all显示可用套餐。 – Ryan 2017-07-05 22:00:06

+1

@Ryan当然,这只适用于不使用PHP5。许多服务器仍然使用PHP5,因此它与当时一样有效。另外,这个问题被标记为ubuntu-9.10,所以这进一步验证了我的答案,因为它直接与该版本相关。 – 2017-07-06 11:46:10

相关问题