[英]Memcache & php: Fatal error: Class 'Memcache' not found in
[英]Drupal — Fatal error: Class 'Memcache' not found
我已经在本地主机上安装了drupal。 它在2个月前运作良好,但现在发生了一些事情,我不知道为什么。 如果您能帮助我,我将不胜感激。 提前致谢。
完整的错误如下所示:
致命错误:在第177行的/srv/www/htdocs/modules/memcache/dmemcache.inc中找不到类“ Memcache”
1)php -m给出了以下内容:
[PHP模块]
bz2
类型
日期
dom
过滤
d
杂凑
图标
json
的libxml
mbstring
加密
MySQL的
mysqli
pcre
PDO
pdo_mysql
pdo_sqlite
反射会话SimpleXML SPL SQLite标准sysvsem标记程序xml xmlreader xmlwriter zip zlib[Zend模块]无
2)memcached是通过软件包管理器安装的。
3)安装了用于drupal的内存缓存模块
我究竟做错了什么? 谢谢。
我与googletorp开会,认为问题似乎取决于内存缓存安装。 尝试这个:
#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
以上过程已从注释中残酷地复制到了正式的memecache文档页面。 日期为11.12.09。
今天,一位同事为我解决了这个问题,我使用了Drupal&Drush(命令行工具),有时还使用了MAMP。
尝试:
echo $PHPRC
如果出现空白,则将其保存在〜/ .profile或*〜/ .bash_profile *配置文件中:
export PHPRC='/Library/Application Support/appsolute/MAMP PRO/conf/php.ini'
非常感谢您的回答-我终于解决了这个问题。 这是针对openSUSE 11.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服务
为php安装memcached守护程序并将其作为守护程序运行。
安装Drupal的Memcache插件 (此处提供所有说明: http : //drupal.org/project/memcache )
UPD 。 升级PHP时要格外小心:安装的模块可能无法在新版本中正常工作-您应该重新编译它们。 但是以某种方式“ pear install -f pecl / memcache”对我有用:)
看来您的memcache drupal模块期望在提及的inc文件中有一个可用的类。
看起来这是问题的drupal模块。 我猜升级失败了。
编辑:
我看了看模块,当时我在iPhone上,所以无法看清代码。 您的问题是Drupal找不到Memcache类。 此修复程序在安装过程的第二步中定义。
2.为PHP安装PECL memcache扩展。 该版本必须为2.2.1或更高版本,否则您将遇到错误。
您现在丢失了此消息,或者安装有问题。 无论如何,Drupal找不到此扩展中定义的Memcache
,这就是为什么会出现致命错误的原因。
仅将extension=memcached.so
添加到您的php.ini
就足够了。 可以使用phpinfo();
找到该文件的位置phpinfo();
确保随后重新启动apache。
我的看法是,memecache可能已安装在您的计算机上,但是在使用memecache之前,此问题未通过PHP正确编译。 在这里查看更多详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.