Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is less a question about PCRE, and more a question about updating shared libraries. The distribution of CentOS I'm running only allows for yum upgrades to version 6.6, or somewhere similar.

I'm installing an issue tracker that requires PCRE version 8.0+. I cannot uninstall the current 6.6 version of PCRE, as nearly everything depends on it, and the system would break.

Thus, I compiled and installed PCRE 8.12 from source, but even though pcretest -C showed the new version, a call to php_info() on my test page indicates that the 6.6 libraries are still being loaded. I found a link to a site suggesting how to swap out the old libraries for the new ones.

In doing so, I think something's not quite right. A few commands are reporting issues:

/usr/bin/php: error while loading shared libraries: cannot open shared object file: No such file or directory

What exactly should I do to fix the issue? I'm not very familiar with shared/dynamic libraries. I have the following files:

[root@vps tracker]# find / -name* -exec ls -l '{}' \;
lrwxrwxrwx 2 root root 16 Jul 14 07:53 /lib64/ ->
lrwxrwxrwx 1 root root 16 Jul 14 07:53 /usr/local/lib/ ->
-rwxr-xr-x 1 root root 116790 Jul 14 07:53 /usr/local/lib/
lrwxrwxrwx 2 root root 16 Jul 14 07:53 /usr/local/lib/ ->
lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/ ->
-rwxr-xr-x 1 root root 116790 Jul 14 07:16 /root/pcre-8.12/.libs/
lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/ ->
share|improve this question
This all seems to stem from the fact that doesn't exist, and the actual library (.so) file was blown away, and a link now exists in its place? – Craig Otis Jul 14 '11 at 13:21
up vote 3 down vote accepted

Success! I blew away the existing libraries, everything that wasn't in /root/pcre-8.12/, then ran the ./configure; make; make install from the source directory.

It installed properly, but still showed me a similar error. I noticed:

[root@vps pcre-8.12]# ldd /usr/sbin/httpd => /lib64/ (0x00002b3c8a9dd000) => not found
(bunch of others)

That the libraries were in /lib64/, while the only link created by the source installer was:


So, I simply created a link in /lib64/:

[root@vps tracker]# link /usr/local/lib/ /lib64/

And everything seems to be great!

share|improve this answer
ldconfig should have done the trick. – Chris Jan 6 '13 at 18:05


ldd /usr/bin/php

will show where php is expecting to find the pcre shared libraries.

share|improve this answer
[root@vps pcre-8.12]# ldd /usr/bin/php (...) => not found (...) – Craig Otis Jul 14 '11 at 13:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.