答案是确认PHP CLI环境已启用ext-sqlite3:运行php -m | grep sqlite3验证是否加载,若无则检查php --ini定位配置文件,确保extension=sqlite3未被注释,并区分CLI与Web SAPI配置独立性。

不是 Composer 缺 sqlite3 扩展,是 PHP 运行环境缺 ext-sqlite3,Composer 本身不依赖它;报错真正意思是“你项目里某个包(比如 Laravel 的 illuminate/database)声明了需要 ext-sqlite3,但你的 PHP CLI 或 Web SAPI 没启用这个扩展”。
composer install 报 “The requested PHP extension ext-sqlite3 is missing” 怎么办
这不是 Composer 安装失败,而是它在检查运行时依赖是否满足。PHP 必须已编译并启用 sqlite3 扩展,否则哪怕装完所有包,启动应用也会直接 fatal error。
- 先确认 PHP 是否真支持 sqlite3:
php -m | grep sqlite3—— 如果没输出,说明扩展根本没加载 - 别只看系统有没有
sqlite3命令:which sqlite3返回路径 ≠ PHP 能用 sqlite3 扩展 - 检查
php.ini:运行php --ini找到加载的配置文件,确认里面存在且未被注释的行:extension=sqlite3 - Windows 用户注意:
extension_dir必须指向正确的.dll所在目录,例如extension_dir="C:\php\ext",且php_sqlite3.dll确实存在 - Linux/macOS 编译安装 PHP 的用户:如果 configure 时没加
--with-sqlite3,即使装了libsqlite3-dev,生成的sqlite3.so也不会自动启用,得手动加extension=sqlite3.so并确保路径正确
PHP 源码编译时 configure 报 “No package 'sqlite3' found”
这是编译阶段的问题,和 Composer 完全无关。错误发生在 ./configure 阶段,说明 pkg-config 找不到 sqlite3.pc 文件,不是运行时缺失扩展。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Ubuntu/Debian:必须装
libsqlite3-dev和pkg-config,仅apt install sqlite3不够 - 验证命令:
pkg-config --modversion sqlite3应输出版本号;若报错,检查/usr/lib/x86_64-linux-gnu/pkgconfig/sqlite3.pc是否存在 - CentOS/RHEL:装
sqlite-devel(不是sqlite),并确认pkgconfig包已安装 - 自定义路径安装 SQLite(如
/usr/local):需设export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"再运行 configure - configure 成功 ≠ 扩展可用:make install 后仍需在 php.ini 中启用
extension=sqlite3并重启 PHP 进程
装完扩展后 composer install 还报 ext-sqlite3 缺失?查这三处
常见于多 PHP 版本共存或 CLI/Web SAPI 配置不一致的场景。
- CLI 和 Web 使用不同 php.ini:
php -i | grep "Loaded Configuration File"和phpinfo()输出的路径必须一致,或至少都启用了sqlite3 - 某些 Docker 镜像或云服务(如 Laravel Forge)默认禁用 sqlite3,需显式开启 —— 即使
php -m显示有,也可能是 CLI 有、FPM 没有 -
composer install默认用 CLI PHP 执行,但最终运行的是 Web SAPI(如 apache2handler 或 fpm-fcgi),两者扩展列表可能不同;用php -r "print_r(get_loaded_extensions());"分别在 CLI 和 Web 环境中执行对比
最容易被忽略的是:PHP 扩展启用状态不跨 SAPI 共享,CLI 能跑不代表 Apache/Nginx 能跑,而 Composer 只校验 CLI 环境 —— 报错消失后,上线第一请求仍可能因 Web SAPI 缺扩展而崩溃。


















