Apache使用哪个版本的PCRE用于mod_rewrite?

时间:2013-12-28 23:24:09

标签: regex apache .htaccess mod-rewrite pcre

我的主机上安装了多个版本的PCRE。

phpinfo()表明PHP使用版本8.21。此外,它还显示了一个文件夹:“pcre-regex = / opt / pcre”

在shell中,当我运行

/opt/pcre/bin/pcretest -C

服务器显示8.21的更多信息。

当我省略目录并运行

pcretest -C

服务器显示PCRE 7.8的信息。

我想知道的是哪个版本的PCRE Apache用于mod_rewrite。

httpd返回“/ usr / sbin / httpd”,所以我试过

ldd /usr/sbin/httpd | grep pcre

但是没有返回。

提前感谢任何见解!

2 个答案:

答案 0 :(得分:1)

这可能是您的特定发行版或特定于您的服务器设置发生的事情,但是apache使用libpcre并且应该链接到它(应该出现在ldd中):

libpcre.so.1 => /lib/libpcre.so.1 (0xb780c000)

您可能需要依赖包管理器来查看该文件所属的包的版本:

/lib/libpcre.so.1 -> libpcre.so.1.2.1

 * Searching for libpcre.so.1.2.1 ... 
dev-libs/libpcre-8.33 (/lib/libpcre.so.1.2.1)

你也可能安装了2个pcretest,因为你在/opt/目录中拥有系统库有点奇怪。它可能是某些库最终安装到您的分发/设置中的地方。 Debian有一个libpcre3包,它将库安装为/lib/libpcre.so.3.12.1,测试安装为/usr/bin/pcretest。最终它将取决于httpd的构建方式以及它希望链接到的内容。简单ldd /usr/sbin/httpd说什么?

答案 1 :(得分:0)

如果是cPanel安装,我的情况是cPanel says,EasyApache安装的PCRE版本是/ opt文件夹中的版本。