这不是一个关于PCRE的问题,更多的是关于更新共享库的问题。 我正在运行的CentOS的分发只允许yum升级到版本6.6,或类似的地方。
我正在安装需要PCRE版本8.0+的问题跟踪器。 我无法卸载当前的6.6版本的PCRE,因为几乎所有的东西都依赖于它,系统会中断。
因此,我从源代码编译并安装了PCRE 8.12,但即使pcretest -C显示了新版本,在我的testing页上调用了php_info()也表明6.6库仍在加载。 我find了一个网站的链接,build议如何将旧图书馆换成新图书馆。
这样做,我觉得有些不对劲。 一些命令是报告问题:
/usr/bin/php: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
我该怎么办才能解决这个问题? 我对共享/dynamic库不是很熟悉。 我有以下文件:
[root@vps tracker]# find / -name libpcre.so* -exec ls -l '{}' \; lrwxrwxrwx 2 root root 16 Jul 14 07:53 /lib64/libpcre.so.0 -> libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:53 /usr/local/lib/libpcre.so.0 -> libpcre.so.0.0.1 -rwxr-xr-x 1 root root 116790 Jul 14 07:53 /usr/local/lib/libpcre.so.0.0.1 lrwxrwxrwx 2 root root 16 Jul 14 07:53 /usr/local/lib/libpcre.so -> libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so.0 -> libpcre.so.0.0.1 -rwxr-xr-x 1 root root 116790 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so -> libpcre.so.0.0.1
成功! 我吹走了现有的库,所有不在/root/pcre-8.12/中的/root/pcre-8.12/ ,然后运行./configure; make; make install ./configure; make; make install 从源目录./configure; make; make install 。
它安装正确, 但仍然给我一个类似的错误。 我注意到:
[root@vps pcre-8.12]# ldd /usr/sbin/httpd libm.so.6 => /lib64/libm.so.6 (0x00002b3c8a9dd000) libpcre.so.0 => not found (bunch of others)
这些库位于/lib64/ ,而源安装程序创build的唯一链接是:
/usr/local/lib/libpcre.so.0
所以,我只是在/lib64/创build一个链接:
[root@vps tracker]# link /usr/local/lib/libpcre.so.0.0.1 /lib64/libpcre.so.0
而一切似乎都很棒!
也许
ldd / usr / bin / php
将显示PHP期望在哪里findpcre共享库。