直接装 libffi-dev(debian/ubuntu)或 libffi-devel(rhel系)即可,因 php 启用 --enable-ffi 需头文件 ffi.h 和库,仅运行时包不足;需用 pkg-config 验证识别,否则 configure 会静默跳过 ffi 支持。

直接装 libffi-dev 就行,但得看系统发行版选对包名
这个错误不是 PHP 本身的问题,而是 configure 脚本在检查 libffi 开发头文件时失败了。PHP 编译启用 --enable-ffi 时必须找到 libffi 的头文件(ffi.h)和静态/动态库,而仅装运行时库(如 libffi7)不够。
Ubuntu/Debian 系统:装 libffi-dev
这是最常见情况:
sudo apt update && sudo apt install libffi-dev- 验证是否成功:
pkg-config --modversion libffi应输出版本号(如3.4.4) - 如果提示
pkg-config未找到,先装:sudo apt install pkg-config
CentOS/RHEL/Rocky/AlmaLinux:装 libffi-devel
Red Hat 系生态的开发包统一用 -devel 后缀:
-
sudo yum install libffi-devel(CentOS 7 / RHEL 7) -
sudo dnf install libffi-devel(CentOS 8+ / RHEL 8+ / Rocky/Alma 8+) - 验证:
pkg-config --modversion libffi或rpm -ql libffi-devel | grep ffi.h
openEuler 22.03:注意源和包名兼容性
openEuler 默认仓库中 libffi-devel 可能版本偏低或缺失:
- 先查有没有:
dnf list available | grep libffi - 若无,启用
EPOL源:sudo dnf install epel-release -y,再试dnf install libffi-devel - 仍失败?手动编译安装 libffi:
wget https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz→ 解压 →./configure --prefix=/usr && make && sudo make install
编译 PHP 前务必确认 pkg-config 能识别 libffi,否则即使头文件存在,./configure 也会静默跳过 FFI 支持——这点容易被忽略,导致后续 extension=ffi 加载失败或 FFI::cdef() 报错 FFI is not supported。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











