PHP 中的 Memcached 扩展错误

PHP 中的 Memcached 扩展错误

昨天我迁移到了 Rackspace (CentOS 5.5)。一切都已配置完毕 (apache、php、mysql、memcached) 并且运行良好。

我唯一忘记并最终安装的是邮件服务器 (iRedMail)。之后,由于某种原因,memcached 出现了问题:

[root@mail php.d]# php -v

PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
 in Unknown on line 0
PHP 5.2.10 (cli) (built: Nov 13 2009 11:44:05)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

我尝试重新安装 memcached:

yum install memcached
yum install php-pecl-memcache
service httpd restart

但错误信息一直显示。

我在 php.ini 中指向这个扩展扩展=memcache.so缓存文件在里面/usr/lib64/php/模块(扩展目录)。一位朋友告诉我检查缺少的库依赖项:

[root@mail 模块]# ldd -v memcache.so

linux-vdso.so.1 =>  (0x00007fff4e915000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5b90c2b000)
/lib64/ld-linux-x86-64.so.2 (0x0000003aa6800000)

Version information:
./memcache.so:
    libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
    libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
    libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
/lib64/libc.so.6:
    ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
    ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

linux-vdso.so.1这与我的问题有关吗?如果是,我该如何安装它?如果没有,还有什么可能导致此行为?

感谢您的帮助。

答案1

如果你现在想获取正确的版本,请确保已安装 php-devel

pecl install memcache

答案2

PHP 5.2.10 在默认的 CentOS 存储库中不可用,因此上面的输出表明它是使用非标准存储库进行更新的(我认为 Remy 提供 5.2.10)。

问题是该存储库似乎只是暂时启用,因此您使用不同的存储库安装了 memcache(可能是 iRedMail 的副作用),因此使用了不同版本的 PHP。

尝试:
yum --enablerepo=* update memcached php-pecl-memcache

根据 /etc/yum.repos.d 中配置文件的有效性,它可能无法工作,可能需要您对存储库进行更具体地说明。

相关内容