应先启用powertools并安装epel-release和oniguruma-devel,再验证pkg-config路径及宝塔缓存;若手动编译需指定--prefix=/usr --libdir=/lib64或更新pkg-config搜索路径。

宝塔面板编译PHP扩展报“No package 'oniguruma' found”
这不是宝塔的问题,而是系统缺少 oniguruma-devel 这个开发包。PHP 7.3+ 启用 mbstring(尤其是带正则功能时)必须链接 oniguruma 库,configure 阶段会通过 pkg-config 检查它,找不到就直接中断,不往后走。
yum install oniguruma-devel 失败或找不到包
常见于 CentOS 8+/Rocky/AlmaLinux 等 EOL 系统,原生仓库已下线,yum install oniguruma-devel 会提示 “No match for argument”,因为默认没启用 PowerTools 或 EPEL。
- 先确认是否启用了
powertools(CentOS 8+ 必须):dnf config-manager --set-enabled powertools - 再安装 EPEL 扩展源(更稳妥):
yum install epel-release -y - 最后装开发包:
yum install oniguruma oniguruma-devel -y - 验证是否注册进 pkg-config:
pkg-config --modversion oniguruma应输出类似6.9.8
手动编译安装 oniguruma 仍报 not found
自己从 GitHub 下载源码编译后,make install 默认装到 /usr/local,但 pkg-config 不会自动扫描该路径,导致 configure 仍找不到。
- 编译时指定 prefix 和 libdir(尤其 x86_64 系统):
./configure --prefix=/usr --libdir=/lib64 - 或手动让 pkg-config 知道位置:
echo "/usr/local/lib/pkgconfig" > /etc/profile.d/onig.sh && chmod +x /etc/profile.d/onig.sh - 重载环境:
source /etc/profile,再运行pkg-config --variable=pc_path pkg-config确认路径已包含 - 避免后续 PHP 编译出错,建议统一用
--with-onig=/usr显式指定路径
宝塔里重试前必须做的两件事
装完依赖不是点“重试”就完事。宝塔的 PHP 扩展编译流程会缓存 configure 结果,旧失败状态可能残留。
- 进宝塔后台 → 软件商店 → 找到对应 PHP 版本 → 点击“设置” → “安装扩展”,先取消勾选目标扩展,保存;再重新勾选,触发全新 configure
- 如果扩展已显示“安装中”但卡住,SSH 手动删掉临时构建目录:
rm -rf /www/server/php/74/src/ext/redis(以 redis 为例,路径按实际版本和扩展名调整)
最常被忽略的是:PowerTools 没启用、pkg-config 路径没刷新、以及宝塔没清掉上次失败的 configure 缓存。这三个点全过一遍,90% 的 oniguruma 报错都能当场解决。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











