PHP memcached 致命错误:找不到类“Memcache”
Posted
技术标签:
【中文标题】PHP memcached 致命错误:找不到类“Memcache”【英文标题】:PHP memcached Fatal error: Class 'Memcache' not found 【发布时间】:2011-02-09 04:24:46 【问题描述】:我已经粘贴了来自php.net 的示例,用于在 php 中使用 memcached,我得到了:
Fatal error: Class 'Memcache' not found
我的 php.ini 中有这个:
[内存缓存] memcache.hash_strategy = “一致” memcache.max_failover_attemps = 100 memcache.allow_failover = 1
以下是分别来自 php -i 和 php -m 的信息:
php -i | grep -i 内存缓存 内存缓存 内存缓存支持 => 启用 libmemcached 版本 => 0.37 注册的保存处理程序 => 文件用户 sqlite memcached
php -m | grep -i 内存缓存 内存缓存
所以 php 似乎已将 memcached 作为模块加载,并且 php info 表示它已加载并且正在使用 v .37。我还没有通过 apache 尝试过,我现在只是通过 cli 使用它。有什么想法吗?
【问题讨论】:
可能重复...***.com/questions/1171313/… 我刚刚看了一眼,我的 php.ini 中已经列出了扩展名,并且我已经确保我的 extension_dir 指向了正确的位置。 有关安装“MEMCACHE”的简单命令,请参见下面的答案。sudo apt-get install php-memcache
对我有用。 packages.ubuntu.com/… 显示可用的包。
【参考方案1】:
在 PHP 中有两个 memcached 扩展,“memcache”和“memcached”。
看起来您正在尝试使用一个(“memcache”),但另一个已安装(“memcached”)。
【讨论】:
这有点傻,但不幸的是,它在 PHP 中很常见。他们没有更新旧的扩展以更好的方式使用新的东西,而是打破了向后的竞争,他们只是创建了一个新的扩展。另请参阅 mysql 和 mysqli。 这似乎是正确的问题。但是我找到的所有说明似乎都说要安装 memcached,但请参阅 memcache。这有点令人困惑。 好的,我找到了一个简单的修复方法(因为其他一切似乎都不起作用)。只需运行以下命令:sudo aptitude install memcached php5-memcached 请注意,这些软件包名称仅适用于某些特定的 Debian 衍生产品。包名在其他环境中会有所不同。 两者都加载应该不会对性能产生真正的影响,不会。【参考方案2】:不管 cmets 中接受的答案是什么,安装“Memcache”的正确方法是:
sudo apt-get install php5-memcache
注意 Memcache 和 Memcached 是两个不同但相关的软件,它们经常被混淆。
编辑 由于这是一篇旧文章,我认为值得一提的是,您应该将 php5 替换为您的 php 版本号。
【讨论】:
几年后,我认为这个答案已经过时了。sudo apt-get install php-memcache
对我有用。 packages.ubuntu.com/… 显示可用的包。
@Ryan 当然,这仅适用于不使用 PHP5 的情况。许多服务器仍然使用 PHP5,所以它和当时一样有效。此外,该问题被标记为 ubuntu-9.10,因此这进一步验证了我的答案,因为它与该版本直接相关。
"Memcached & Memcached" ??
有windows的解决方案吗?【参考方案3】:
我在这篇文章中找到了解决方案:https://***.com/questions/11883378/class-memcache-not-found-php#=
我找到了适用于 PHP 5.4.4 的工作 dll 文件
我不知道它们有多稳定,但它们确实可以工作。学分转到此链接。
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
【讨论】:
【参考方案4】:右边是php_memcache.dll。就我而言,我使用的是用 vc9 而不是 vc6 编译器编译的 lib。在补丁错误日志中,我得到了类似的内容:
PHP 启动:sqlanywhere:无法 初始化模块 编译的模块 构建 ID=API20090626, TS,VC9 PHP 使用 build ID=API20090626 编译, TS,VC6 这些选项需要匹配
检查是否有相同的日志并尝试下载使用不同编译器编译的不同dll。
【讨论】:
【参考方案5】:对于 OSX 用户:
运行以下命令安装 Memcached:
brew install memcached
【讨论】:
【参考方案6】:我进入 wp-config/ 并删除了 object-cache.php 和 advanced-cache.php 对我来说效果很好。
【讨论】:
所做的只是阻止您的 WordPress 安装能够进行任何对象缓存。它实际上并不能解决任何问题,更不用说 OP 提出的问题了。以上是关于PHP memcached 致命错误:找不到类“Memcache”的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:在 Zend Framework + Wamp 中找不到类“Memcache”