Назад | Перейти на главную страницу

Ошибка расширения Memcached в PHP

вчера я перешел на 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 extension = memcache.so и memcache.so это внутри / usr / lib64 / php / модули (каталог расширений). Друг посоветовал мне проверить недостающие зависимости библиотеки:

[корневые @ почтовые модули] # 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 что-то делать с моей проблемой? Если да, то как мне его установить? Если нет, что еще может вызывать такое поведение?

Спасибо за вашу помощь.

PHP 5.2.10 недоступен в репозиториях CentOS по умолчанию, поэтому ваш вывод выше предполагает, что он был обновлен с использованием нестандартного репозитория (я думаю, что Реми предлагает 5.2.10).

Проблема в том, что репозиторий, похоже, был включен только временно, поэтому вы установили memcache (возможно, как побочный эффект iRedMail) с использованием другого репозитория и, следовательно, для другой версии PHP.

Пытаться:
yum --enablerepo=* update memcached php-pecl-memcache.

Это может не сработать в зависимости от допустимости файлов конфигурации в /etc/yum.repos.d, для этого может потребоваться более конкретная информация о репозитории.

Если вы хотите получить нужную версию сейчас, убедитесь, что у вас установлен php-devel.

pecl install memcache