• 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配置无法解决问题。目前还不清楚问题的缘由。

  • 相关阅读:
    linux nohup
    并发编程-多进程模块介绍
    并发编程-多进程
    网络编程-粘包现象
    Typora快捷键Mac
    网络编程
    异常处理
    面向对象-元类介绍
    面向对象-内置方法
    面向对象-反射
  • 原文地址:https://www.cnblogs.com/cndavidwang/p/12343847.html
Copyright © 2020-2023  润新知