PCRE库版本太旧了

时间:2012-08-31 09:00:09

标签: php apache apache2 centos pcre

  

Bug Genie 3需要PCRE Librairies 8.0或更高版本。你有   版本7.8 2008-09-05。将您的系统更新到最新版本   你常用的来源。

在我查看问题并尝试使用以下步骤更新我的pcre库之后:

wget the latest source of pcre from sourceforge 8.31

# tar -xzf pcre-8.31.tar.gz
# cd pcre-8.31
# ./configure --enable-utf8  --enable-unicode-properties
# make && make install

当我做pcretest -C时 我得到了这个

[root@server1 /]# pcretest -C
PCRE version 8.31 2012-07-06
Compiled with
  8-bit support only
  UTF-8 support
  Unicode properties support
  No just-in-time compiler support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

当我找到时,有很多

[root@server1 /]# locate libpcre
/lib64/libpcre.so.0
/lib64/libpcre.so.0.0.1
/usr/lib64/libpcrecpp.so.0
/usr/lib64/libpcrecpp.so.0.0.0
/usr/lib64/libpcreposix.so.0
/usr/lib64/libpcreposix.so.0.0.0
/usr/local/lib/libpcre.a
/usr/local/lib/libpcre.la
/usr/local/lib/libpcre.so
/usr/local/lib/libpcre.so.1
/usr/local/lib/libpcre.so.1.0.1
/usr/local/lib/libpcrecpp.a
/usr/local/lib/libpcrecpp.la
/usr/local/lib/libpcrecpp.so
/usr/local/lib/libpcrecpp.so.0
/usr/local/lib/libpcrecpp.so.0.0.0
/usr/local/lib/libpcreposix.a
/usr/local/lib/libpcreposix.la
/usr/local/lib/libpcreposix.so
/usr/local/lib/libpcreposix.so.0
/usr/local/lib/libpcreposix.so.0.0.1
/usr/local/lib/pkgconfig/libpcre.pc
/usr/local/lib/pkgconfig/libpcrecpp.pc
/usr/local/lib/pkgconfig/libpcreposix.pc

最后,我很高兴地支持我的PHP信息..它仍然显示我安装的版本7.8。

enter image description here

我知道如果开源应用程序buggenie需要这个,我该怎么做才能解决这个问题。感谢回复。

4 个答案:

答案 0 :(得分:5)

我是Centos 6.3用户。这适用于我的情况。

  1. 搜索现有的pcre。

    rpm -qa | grep pcre
    
  2. 使用--nodeps删除所有现有的pcre。

  3. 下载pcre rpm高于8.x. 我使用了http://rpmfind.net/linux/rpm2html/search.php?query=pcre

  4. 中的一个
  5. 使用rpm安装它。

  6. 重新启动您的网络服务并检查phpinfo。它应该显示你刚刚安装的pcre库。

答案 1 :(得分:4)

在Centos 5.9上,drmanalo的修改版步骤为我们工作:

  1. 搜索现有的pcre
        rpm -q --queryformat“%{name}。%{arch} \ n”pcre
  2. 使用--nodeps
    删除所有现有的pcre     rpm -ev --nodeps pcre-devel.x86_64
        rpm -ev --nodeps pcre.x86_64
        rpm -ev --nodeps pcre-devel.i386
        rpm -ev --nodeps pcre.i386
  3. 添加了存储库
        nano /etc/yum.repos.d/utter-ramblings.repo

      

    [彻底-随笔]
      name = Utter Ramblings
      baseURL时= http://www.jasonlitka.com/media/EL5/x86_64/
      gpgkey = #same.url.as.above# /媒体/ RPM-GPG-KEY-jlitka
      启用= 1个
      gpgcheck = 1

  4.   
  5. 使用yum安装       yum --disablerepo = * --enablerepo = utter-ramblings安装pcre pcre-devel
  6.   
  7. 重新启动您的网络服务并检查phpinfo
  8.   

答案 2 :(得分:2)

我认为你必须使用--with-pcre-regex=DIR选项在最新的PCRE库中手动构建PHP。为此,您需要获取PHP源和PCRE源,以及您可能需要的所有其他库的源。

此页面http://php.net/manual/en/pcre.installation.php总结了与PHP捆绑在一起的PCRE版本。

更容易的选择是使用操作系统的软件包管理器更新PHP(可能通过启用不稳定的存储库),但这取决于您的操作系统。

答案 3 :(得分:0)

在我的Centos 5.9上我可以将pcre从6. *升级到8. *没问题,但是无法通过PHP或Apache“识别”它。通过将php53升级到php54来解决问题