Drupal - 致命错误:未找到类'Memcache'

时间:2009-12-14 20:20:46

标签: php drupal memcached

我在本地主机上安装了drupal。它在2个月前运作良好,但现在发生了一些事情,我不知道为什么。如果你能帮助我,我将非常感激。提前谢谢。

完整错误如下所示:

  

致命错误:类'Memcache'没有   在发现   /srv/www/htdocs/modules/memcache/dmemcache.inc   在第177行

1)php -m给出了这个:

  

[PHP模块]
  BZ2
  CTYPE
  日期
  DOM
  过滤
  GD
  哈希
  的iconv
  JSON
  libxml的
  MBSTRING
  mcrypt的
  MySQL的
  mysqli的
  PCRE
  PDO
  PDO_MYSQL
  PDO_SQLITE
  反思会话SimpleXML SPL   SQLite标准sysvsem tokenizer xml   xmlreader xmlwriter zip zlib

     

[Zend Modules]   无

2)memcached通过包管理器安装。

3)安装了drupal的memcache模块

我做错了什么? THX。

6 个答案:

答案 0 :(得分:4)

我与googletorp召集,问题似乎依赖于memcache安装。试试这个:

#if apt-get, rpm, or yum doesn't work
cd /usr/src/
wget http://pecl.php.net/get/memcache-2.2.4.tgz
tar -zxvf memcached-2.2.4.tgz
cd memcached-2.2.4
phpize && ./configure --enable-memcache && make
cp modules/memcache.so /usr/lib/php/modules/

# Note: packaged extension modules are now loaded via the .ini files
# found in the directory /etc/php.d
touch /etc/php.d/memcached.ini
echo 'extension=memcache.so' > /etc/php.d/memcached.ini

service httpd restart

上述程序已被残酷地从评论复制到official memecache documentation的页面。它的日期是2009年12月11日。

答案 1 :(得分:2)

今天一位同事帮我解决了这个问题,我使用了Drupal& Drush(命令行工具),有时是MAMP。

尝试:

echo $PHPRC

如果它出现空白,请将其保存在〜/ .profile 或您的*〜/ .bash_profile *配置文件中:

export PHPRC='/Library/Application Support/appsolute/MAMP PRO/conf/php.ini'

答案 2 :(得分:1)

非常感谢您的回答 - 我最终解决了这个问题。 这是openSUSE 11.1的解决方案。

  1. 为php安装 memcache扩展

    #if apt-get, rpm, or yum doesn't work
    cd /usr/src/
    wget http://pecl.php.net/get/memcache-2.2.5.tgz
    tar -zxvf memcache-2.2.5.tgz
    cd memcache-2.2.5
    phpize5
    ./configure --enable-memcache
    make
    make install
    cp modules/memcache.so /usr/lib/php5/extensions/
    
    # Note: packaged extension modules are now loaded via the .ini files
    # found in the directory /etc/php5/conf.d/
    touch /etc/php5/conf.d/memcache.ini
    echo 'extension=memcache.so' > /etc/php5/conf.d/memcache.ini
    

    现在你应该重启apache2服务

  2. 为php安装 memcached守护程序并将其作为守护程序运行。

  3. 为drupal安装 memcache插件(此处所有说明:http://drupal.org/project/memcache

  4. <强> UPD 即可。小心升级PHP:安装的模块可能不适用于新版本 - 您应该重新编译它们。但不知何故,“pear install -f pecl / memcache”为我做了诀窍:)。

答案 3 :(得分:0)

看来你的memcache drupal模块期望在所提到的inc文件中有一个类。

  • 您是否升级了drupal模块?
  • 在这种情况下,最好查看drupal.org上模块的问题。

看起来这是drupal模块的问题。我猜测升级出错了。

修改
我看了看模块,我在我的iphone上,所以无法查看代码。你的问题是Drupal找不到Memcache类。此修复程序在安装过程的第二步中定义。

  

2。安装PHP的PECL memcache扩展。这必须是版本2.2.1或      更高或你会遇到错误。

您现在错过了这个,或者安装有问题。在任何方面,Drupal都找不到此扩展中定义的Memcache,这就是您遇到致命错误的原因。

答案 4 :(得分:0)

extension=memcached.so添加到php.ini可能就足够了。可以使用phpinfo();

找到此文件的位置

确保之后重启apache。

答案 5 :(得分:0)

我的看法是meme缓存可能已安装在您的计算机上,但它没有使用PHP正确编译 在使用memcache之前遇到过这个问题。 查看here了解更多详情