Windows10下Laravel8.x+PHP8.2.3 SQLite驱动异常解决求助
解决Laravel中SQLite驱动加载失败问题(Windows 10 + PHP 8.2.3 + Laravel 8.x)
错误原因分析
- 第一个错误
could not find driver:PHP未启用SQLite扩展,导致Laravel无法连接SQLite数据库 - 第二个错误
Can't load module 'sqlite3.DLL' as it's linked with 9.0, but the core is linked with 14.29:下载的sqlite3.dll版本与当前PHP的VC编译版本不兼容(PHP 8.2基于VC16编译,而SQLite官网默认下载的是VC9版本)
解决方案步骤
1. 确认PHP编译版本信息
执行命令查看PHP的编译环境:
php -v
查看输出中的编译版本,比如:
PHP 8.2.3 (cli) (built: Feb 14 2023 18:18:25) (ZTS Visual C++ 2019 x64)
这里的Visual C++ 2019对应VC16,同时注意ZTS(线程安全)和x64(64位)标识。
2. 获取匹配版本的sqlite3.dll
不要直接从SQLite官网下载,需下载与PHP版本、线程安全/非线程安全、位数完全匹配的sqlite3扩展:
- 找到对应PHP版本的官方扩展包,解压后提取
sqlite3.dll文件
3. 配置PHP启用SQLite扩展
- 将提取的
sqlite3.dll替换到你的PHP安装目录下的ext文件夹中 - 打开
php.ini配置文件,找到以下配置:
去掉前面的分号,启用扩展:;extension=sqlite3extension=sqlite3 - 确认
extension_dir配置正确指向你的ext目录,比如:extension_dir = "C:\PHP\ext"
4. 验证配置并测试
- 执行命令验证扩展是否成功加载:
查看输出列表中是否包含php -msqlite3,若存在则表示扩展启用成功 - 重新执行Laravel迁移命令:
php .\artisan migrate
注意事项
- 必须保证下载的sqlite3.dll与PHP的线程安全类型、位数、VC编译版本完全匹配,否则会出现加载失败问题
- 若使用WAMP、XAMPP等集成环境,可直接在环境的PHP配置面板中启用sqlite3扩展,无需手动替换dll文件
内容的提问来源于stack exchange,提问作者Leslie
相关产品推荐
相关产品推荐

