Php 如何在CENTOS/Redhat 6中更新PCRE

Php 如何在CENTOS/Redhat 6中更新PCRE,php,linux,centos,wikipedia,centos6,Php,Linux,Centos,Wikipedia,Centos6,要安装Mediawiki加载项Scribunto,至少需要PCRE版本8.1。但在CENTOS更新中,最高版本是7.8 我成功地编译了源代码版本8.33,并且使用“pcretest-C”命令,它已经是版本8.33了。但是phpinfo()仍然使用旧的PCRE 7.8 如何将php中的PCRE指向最新版本?叹气 我感觉到你了 我可以告诉你,最终对我起作用的是构建PCRE并使用FastCGI(CentOS 6中的mod_fcgid包)和/etc/httpd/conf.d/php.conf: <

要安装Mediawiki加载项Scribunto,至少需要PCRE版本8.1。但在CENTOS更新中,最高版本是7.8

我成功地编译了源代码版本8.33,并且使用“pcretest-C”命令,它已经是版本8.33了。但是phpinfo()仍然使用旧的PCRE 7.8

如何将php中的PCRE指向最新版本?叹气

我感觉到你了

我可以告诉你,最终对我起作用的是构建PCRE并使用FastCGI(CentOS 6中的
mod_fcgid
包)和
/etc/httpd/conf.d/php.conf

<IfModule fcgid_module>
  SetEnv LD_PRELOAD /usr/local/lib/libpcre.so.1

  ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
  AddType application/x-httpd-fastphp .php
  Action application/x-httpd-fastphp /fcgi-bin/php-cgi

  <Directory /var/www/fcgi-bin/>
    # Allows /usr/bin/php-cgi to be symlinked here
    Options +FollowSymLinks
  </Directory>
</IfModule>

SetEnv LD_PRELOAD/usr/local/lib/libpcre.so.1
ScriptAlias/fcgi-bin//var/www/fcgi-bin/
AddType应用程序/x-httpd-fastphp.php
动作应用程序/x-httpd-fastphp/fcgi-bin/php-cgi
#允许在此处符号链接/usr/bin/php cgi
选项+FollowSymLinks
下面是我在放弃并求助于FastCGI之前,用默认的“模块化”PHP设置(
php5_module
)尝试过的一些事情

  • PassEnv LD_PRELOAD
    带有
    LD_PRELOAD=/usr/local/lib/libpcre.so.1
    中定义的
    /etc/sysconfig/httpd
  • SetEnv LD_PRELOAD/usr/local/lib/libpcre.so.1
  • LoadFile/usr/local/lib/libpcre.so.1
然而,我通常将这些指令放在
VirtualHost
部分中,因此我不排除顺序是问题的可能性。也就是说,完全有可能在加载PHP模块之前需要用到这些指令,而我并没有这样做。我使用的是
/etc/httpd/conf.d/php.conf
vhosts.conf
,在我进行实验时,通常都会尝试不破坏顶级配置文件


最后,我失去了耐心,试着走FCGI路线,这对我来说很有效。如果您愿意将PHP作为可加载模块运行,那么您可能希望在加载PHP DSO之前,使用
httpd.conf
中指定的
LoadFile
尝试上述一些选项。

您自己的libpcre版本安装到了哪里?尝试通过
ld.so.conf
ld\u LIBRARY\u PATH
对其进行优先级排序,或者利用
ld\u PRELOAD=
专门运行Apache/PHP,只需使用自定义pcre构建。我已安装到/usr。我是这个领域的新手。我知道ld.so.conf,但不知道ld_库路径和ld_预加载。我不知道如何找到php从哪里获得pcre。非常感谢逐步命令行。事实上,我已经通过将Centos 6升级到7解决了这个问题,当我问这个问题时,这是不存在的。但是谢谢你的回答。