PHP 7.4.x中mbstring的正则表达式功能需要oniguruma。解决错误“No package 'oniguruma' found”。

Posted 胡良庆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 7.4.x中mbstring的正则表达式功能需要oniguruma。解决错误“No package 'oniguruma' found”。相关的知识,希望对你有一定的参考价值。

一、环境:

  CentOS 7.7.1908
  php 7.4.2
  Oniguruma 6.9.4
二、问题:

  安装PHP 7.4.x过程中出现如下错误信息:

技术图片
……………………
checking whether to enable multibyte string support... yes
checking whether to enable multibyte regex support (requires oniguruma)... yes
checking for oniguruma... no
configure: error: Package requirements (oniguruma) were not met:

No package ‘oniguruma‘ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
技术图片

  这个错误信息是由于mbstring的正则功能需要oniguruma的支持,编译PHP的时候使用了“--enable-mbstring”参数,系统中却没有oniguruma库。

三、解决:

  办法1.不使用mbstring的正则功能,即在“--enable-mbstring”后再添加“--disable-mbregex”参数。这样的配置将不再需要oniguruma库。

  办法2.使用yum安装oniguruma。

    命令:

yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

  办法3.使用源代码安装。

    网址: https://github.com/kkos/oniguruma 

    命令:

./configure --prefix=/usr --libdir=/lib64
make
sudo make install

    简单说明:需要有“--libdir=/lib64”参数。如果不使用这个参数,编译PHP仍将报错,编辑ldconfig配置无法解决问题。目前还不清楚问题的缘由。

以上是关于PHP 7.4.x中mbstring的正则表达式功能需要oniguruma。解决错误“No package 'oniguruma' found”。的主要内容,如果未能解决你的问题,请参考以下文章

判断字符长度php

详解JMeter正则表达式提取器

php 版本升高后 会出现 之Deprecated: Function ereg_replace() is deprecated的解决方法

从 PHP 脚本检测是不是启用了 mbstring

[PHP] 解决no package ‘oniguruma’ found

Composer - 您的系统中缺少请求的 PHP 扩展 mbstring [关闭]