0

yesterday i migrated to Rackspace (CentOS 5.5). Everything was already configured (apache, php, mysql, memcached) and working well.

The only thing i forgot, and installed at last was the mail server (iRedMail). After that, for some reason, memcached got kind of screwed up:

[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

I tried reinstalling memcached:

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

But the error message kept being displayed.

I am pointing to this extension in the php.ini extension=memcache.so and memcache.so is inside /usr/lib64/php/modules (extensions directory). A friend told me to check for missing library dependencies:

[root@mail modules]# 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

Does that linux-vdso.so.1 something to do with my problem? If so, how do i install it? If not, what else could be causing this behavior?

Thanks for your help.

Andres SK
  • 228
  • 3
  • 7
  • 21

2 Answers2

1

PHP 5.2.10 isn't available in the default CentOS repositories, so your output above suggests it was updated using a non-standard repository (I think Remy offer 5.2.10).

The issue is that the repository seems to have only been temporarily enabled so you've installed memcache (possibly as a side effect of iRedMail) using a different repository and so for a different version of PHP.

Try:
yum --enablerepo=* update memcached php-pecl-memcache.

It might not work depending on the validity of the configuration files in /etc/yum.repos.d, it may require you to be more specific about the repository.

James L
  • 5,915
  • 1
  • 19
  • 24
  • didn't work. this is the result: http://unipocket.com/enablerepo.txt -- how can i find out details of the repository to post them here for you? Thanks! – Andres SK Nov 25 '10 at 15:25
  • Sourced below, but basically `yum info php` may tell you with a "from repo" line, if not, `yum install yum-utils; repoquery -i php`. Source: http://serverfault.com/questions/62026/how-to-know-from-which-yum-repository-a-package-has-been-installed – James L Nov 25 '10 at 15:33
  • repo results: http://unipocket.com/repo.txt – Andres SK Nov 25 '10 at 22:08
  • definitely, the problem is because memcache was installed using a different repo. BTW, im not using pecl-memcached, im using memcache. How can i install the right version for this repo? – Andres SK Nov 26 '10 at 02:23
1

If you want to get the right version on now make sure you have php-devel installed

pecl install memcache
Mike
  • 21,910
  • 7
  • 55
  • 79
  • hi Mike, actually im using the "memcache" extension instead of the pecl memcached. The problem is definitely because it was installed using a different repo... how could i solve that – Andres SK Nov 26 '10 at 02:23
  • if you run that command it will build the memcache extension for your version.. – Mike Nov 26 '10 at 13:10
  • your command didn't work because i didn't have zlib (yum install zlib-devel). thanks! – Andres SK Nov 26 '10 at 14:16