需先确认phpEnv当前PHP版本及对应php.ini路径,再检查ext/目录下php_pdo_sqlite.dll是否存在,确保php_pdo.dll在php_pdo_sqlite.dll之前启用,最后用php -m和PDO::getAvailableDrivers()验证是否真正生效。

phpEnv 是 Windows 下的 PHP 多版本环境管理工具,它不直接修改系统级 php.ini,而是为每个 PHP 版本维护独立的配置目录。开启 PDO_SQLITE 扩展不能只靠“取消注释”,必须确认扩展文件存在、路径正确、加载顺序合规,否则即使配置看起来对,php -m 也看不到 pdo_sqlite。
确认 phpEnv 当前使用的 PHP 版本和配置路径
phpEnv 的每个 PHP 版本都有自己的 php.ini 和 ext/ 目录,先得知道你在用哪个版本:
- 运行
phpenv versions查看已安装版本,带 * 号的是当前激活版 - 运行
php --ini输出 Loaded Configuration File 路径,例如C:\phpenv\php\php-8.2.12\php.ini - 对应扩展目录通常是
C:\phpenv\php\php-8.2.12\ext\,进去确认是否存在php_pdo_sqlite.dll(Windows)或pdo_sqlite.so(Linux/macOS 模拟环境极少用 phpEnv)
检查并修正 php.ini 中的 extension 配置行
phpEnv 的 php.ini 里常见错误是路径写死、扩展名错、加载顺序颠倒。PDO 驱动必须在 pdo 主扩展之后加载:
- 确保这三行都存在且未被注释(开头没有分号
;):extension=php_pdo.dllextension=php_pdo_sqlite.dll
(注意:不是extension=pdo_sqlite,Windows DLL 文件名带php_前缀) - 这两行必须按顺序出现:
php_pdo.dll在前,php_pdo_sqlite.dll在后;否则启动时会报PHP Warning: PHP Startup: Unable to load dynamic library 'php_pdo_sqlite.dll' - 如果使用的是 PHP 8.0+,部分精简包可能把
php_pdo.dll编译进核心,此时只需启用php_pdo_sqlite.dll,但依然建议显式写出php_pdo.dll行以保兼容
验证是否真正生效,而不是“看起来启用了”
改完 php.ini 后,必须重启所有依赖 PHP 的进程(如 Apache/Nginx),然后用命令行验证,不能只靠浏览器访问 phpinfo():
立即学习“PHP免费学习笔记(深入)”;
- 执行
php -m | findstr pdo(Windows)或php -m | grep pdo(WSL),应同时看到pdo和pdo_sqlite - 执行
php -r "print_r(PDO::getAvailableDrivers());",输出数组中必须包含sqlite字符串 - 如果
php -m显示了pdo_sqlite,但PDO::getAvailableDrivers()不返回sqlite,说明 DLL 加载成功但驱动注册失败——大概率是php_pdo.dll没加载或版本不匹配
常见坑:DLL 文件缺失、位数不匹配、VC 运行库缺失
phpEnv 默认下载的是线程安全(TS)、VC15/VC17 编译的二进制包,扩展 DLL 必须严格匹配:
- 打开任务管理器 → 性能 → CPU → 查看是 x64 还是 x86;PHP 版本也必须一致(32 位 PHP 不能加载 64 位 DLL)
- 若提示
The specified module could not be found.,用 Dependencies 工具打开php_pdo_sqlite.dll,检查是否缺失MSVCP140.dll或VCRUNTIME140.dll—— 此时需安装对应版本的 Microsoft Visual C++ Redistributable - 不要从其他 PHP 包里复制 DLL 文件混用;phpEnv 官方包的扩展都在
ext/下,缺失时应重装该 PHP 版本:phpenv install 8.2.12
最易被忽略的一点:phpEnv 的 Apache/Nginx 集成模式下,Web 服务用的是它自带的 php-cgi.exe 或 php.exe,它们读取的 php.ini 路径可能和命令行下的不一致——务必用 php --ini 和 phpinfo() 里的 “Loaded Configuration File” 两处比对,确保改的是同一个文件。



















