PHP 8.2.32 编译报缺少 oniguruma 是因启用 --enable-mbstring 后需 libonig 支持多字节正则,而系统未提供可用开发库;解决核心是确保 pkg-config 能识别 oniguruma 或 libonig,不同系统对应安装 oniguruma-devel(CentOS 7)、源码编译安装至 /usr(CentOS 8+)、或 apt 安装 libonig-dev(Ubuntu/Debian),并验证 pkg-config --modversion 输出版本号。

PHP 8.2.32 编译时提示缺少 oniguruma,本质是启用了 --enable-mbstring(默认开启)且需要多字节正则支持,而系统未提供可用的 libonig 开发库。处理方式取决于你的 CentOS/AlmaLinux/Rocky 版本,核心思路是:让 pkg-config 能查到 oniguruma 或 libonig。
CentOS 7 / RHEL 7 系统
官方 base 源不带 oniguruma-devel,需手动安装兼容版本:
- 启用 EPEL 并尝试安装(部分镜像已同步):
yum install -y epel-release && yum install -y oniguruma-devel - 若失败,直接下载 RPM 包安装(推荐 6.9.4 或 6.9.8 版本):
yum install -y http://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5-6.9.4-1.el7.remi.x86_64.rpmyum install -y http://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5-devel-6.9.4-1.el7.remi.x86_64.rpm - 安装后验证:
pkg-config --modversion oniguruma或pkg-config --modversion libonig应输出版本号
CentOS 8 / AlmaLinux 8 / Rocky Linux 8+ 系统
dnf 默认源中无 oniguruma-devel,需源码编译安装到系统级路径:
- 下载并解压最新稳定版(如 v6.9.8):
wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gztar -zxf onig-6.9.8.tar.gz && cd onig-6.9.8 - 配置安装到
/usr(确保 pkg-config 可识别):./configure --prefix=/usr && make && sudo make install - 刷新 pkg-config 缓存(必要时):
sudo ldconfig && pkg-config --modversion oniguruma
Ubuntu / Debian 系统
直接安装开发包即可,无需额外操作:
立即学习“PHP免费学习笔记(深入)”;
sudo apt update && sudo apt install -y libonig-dev- 验证:
pkg-config --modversion oniguruma或pkg-config --modversion libonig
编译 PHP 前的确认要点
即使 oniguruma 已装好,仍需注意:
- 确保
PKG_CONFIG_PATH未被错误覆盖(如设为/usr/local/lib/pkgconfig却没放 .pc 文件) - PHP configure 命令中不要加
--with-onig(PHP 7.4+ 已弃用,改用 pkg-config 自动探测) - 若仍报错 “No package 'oniguruma' found”,运行
pkg-config --list-all | grep -i onig查看实际注册名,部分系统注册为libonig,可临时软链:sudo ln -sf /usr/lib64/pkgconfig/libonig.pc /usr/lib64/pkgconfig/oniguruma.pc



















