pdo_sqlite扩展需手动启用php.ini中extension=sqlite3和extension=pdo_sqlite两行,通过phpenv gui的config按钮打开正确配置文件,修改后重启服务,并用web测试脚本验证;连接sqlite须用绝对路径并确保目录权限。

PDO_SQLite 扩展在 phpEnv 中默认未启用,必须手动修改 php.ini 并重启服务才能使用。
确认 phpEnv 当前使用的 php.ini 文件位置
phpEnv 是 Windows 下的便携式 PHP 环境管理工具,每个 PHP 版本有独立配置。直接运行 php --ini 可能返回错误路径(比如指向系统全局配置),真实生效的配置文件通常位于:
-
phpenv\versions\{版本号}\etc\php.ini(例如phpenv\versions\8.2.12\etc\php.ini) - 或
phpenv\versions\{版本号}\conf\php.ini
打开 phpEnv GUI → 选择对应 PHP 版本 → 点击「Config」按钮,它会自动用记事本打开该版本实际加载的 php.ini。这是唯一可靠的路径,别信 php --ini 的输出。
启用 pdo_sqlite 和 sqlite3 扩展
在正确打开的 php.ini 文件中搜索以下两行:
;extension=sqlite3;extension=pdo_sqlite
把前面的分号 ; 全部删掉,保存文件。注意:这两行必须都启用——sqlite3 提供底层驱动,pdo_sqlite 是 PDO 接口层,缺一不可。如果搜不到,就手动在 extension= 区块末尾添加这两行。
⚠️ 常见坑:
– phpEnv 有时会为不同 PHP 版本生成多个 php.ini(如 php.ini-development),务必改对正在用的那个;
– 修改后不重启 phpEnv 服务,改动完全无效;
– 某些旧版 phpEnv 自带的 PHP 二进制可能不含 pdo_sqlite 动态库(php_pdo_sqlite.dll),此时需替换为官方 PHP for Windows 二进制。
验证扩展是否真正加载成功
仅靠 php -m | findstr sqlite 不够可靠,因为命令行 PHP 和 phpEnv 内置 Web 服务器可能用不同配置。最准的方式是写一个测试脚本:
<?php if (in_array('sqlite', PDO::getAvailableDrivers())) {
echo "✅ PDO_SQLite 已就绪";
} else {
echo "❌ PDO_SQLite 未加载,请检查 php.ini 和重启";
}
?>
把这文件放在 phpEnv 的 Web 根目录(如 www\test.php),用 phpEnv 启动内置服务器后访问 http://localhost/test.php。只要显示 ✅,就说明扩展已活,可以安全执行 new PDO('sqlite:db.sqlite')。
连接 SQLite 时路径和权限最容易出错
phpEnv 默认工作目录是其安装根目录(不是 www 目录),所以 new PDO('sqlite:test.db') 会在 phpEnv 根目录下创建文件,而非你预期的 www 下。建议始终用绝对路径:
$pdo = new PDO('sqlite:C:/phpenv/www/myapp/data.db');- 确保该路径所在文件夹对当前用户有读写权限(右键文件夹 → 属性 → 安全 → 编辑权限)
- 首次连接时若路径不存在,PDO 会自动创建
.db文件,但不会自动创建父级目录
另外,SQLite 文件不能放在网络盘、OneDrive 同步目录或 NTFS 加密文件夹里——这些场景会导致 SQLITE_BUSY 或写入失败,且错误信息极不明确。
真正卡住人的从来不是“怎么开扩展”,而是改了哪份 php.ini、重启了哪个进程、以及数据库文件到底被写到哪个看不见的角落。盯住 phpEnv GUI 里的「Config」按钮,它比所有文档都准。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











