вчера я перешел на 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