我的主机上安装了多个版本的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
但是没有返回。
提前感谢任何见解!
答案 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文件夹中的版本。