no package 'sqlite3' found 是因缺少开发库而非运行时程序:需安装 libsqlite3-dev(ubuntu)或 sqlite-devel(centos)、pkg-config 工具,并确保 sqlite3.pc 文件存在且 pkg_config_path 正确;编译通过后还需在 php.ini 中启用 extension=sqlite3 并重启服务。

configure 阶段报 No package 'sqlite3' found 不是缺运行时,而是缺开发头文件和 pkg-config 描述文件
为什么装了 sqlite3 命令还不行?
系统里有 sqlite3 可执行程序(比如通过 apt install sqlite3),只代表 SQLite 运行环境存在;PHP 源码编译时需要的是:libsqlite3-dev(含 sqlite3.h 等头文件)和 pkg-config 能识别的 sqlite3.pc 文件。没有它,./configure 根本不知道 SQLite 库装在哪、版本多少、该连哪个动态库。
-
sqlite3包:提供命令行工具,不带编译所需头文件 -
libsqlite3-dev包:含/usr/include/sqlite3.h和/usr/lib/x86_64-linux-gnu/pkgconfig/sqlite3.pc -
pkg-config:必须安装,否则即使libsqlite3-dev已装,configure也查不到
Ubuntu/Debian 上必须执行的三步
仅 apt install libsqlite3-dev 不够,常见漏掉环节:
- 运行
sudo apt update && sudo apt install -y sqlite3 libsqlite3-dev pkg-config - 验证
pkg-config --modversion sqlite3是否输出版本号(如3.31.1) - 若输出
Package sqlite3 was not found,检查/usr/lib/x86_64-linux-gnu/pkgconfig/下是否存在sqlite3.pc;不存在则重装libsqlite3-dev
CentOS/RHEL 系统对应操作
包名不同,但逻辑一致:
- 执行
yum install -y sqlite-devel(注意是sqlite-devel,不是sqlite) - 确认
pkg-config已安装:yum install -y pkgconfig - 验证:
pkg-config --exists sqlite3 && echo ok,无输出即失败 - 若用自定义路径安装 SQLite(如
/usr/local),需额外设置export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
configure 成功后,php.ini 里还得手动启用扩展
源码编译只是让 PHP 支持编译出 sqlite3 扩展模块,不等于自动加载。运行 make install 后仍需:
- 找到生效的
php.ini:php --ini或phpinfo()查 “Loaded Configuration File” - 编辑该文件,取消注释:
extension=sqlite3和extension=pdo_sqlite - 重启 Web 服务(
systemctl restart apache2或nginx)或 PHP-FPM 进程 - 用
php -m | grep sqlite确认扩展已载入
最容易被忽略的是最后一步——编译通过 ≠ 扩展可用,php.ini 修改和重启服务缺一不可。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











