Windows本地PHP CLI无法加载sqlsrv/pdo_sqlsrv扩展求助
解决Windows PHP CLI无法加载pdo_sqlsrv扩展的问题
核心排查与修复步骤
1. 匹配扩展文件名与php.ini配置
错误里PHP尝试加载pdo_sqlsrv_7_nts_x64和php_pdo_sqlsrv_7_nts_x64.dll,你需要:
- 查看ext目录里的实际文件名,部分版本的扩展文件名不带PHP版本、NTS/x64后缀(比如可能是
php_pdo_sqlsrv.dll) - 打开
php.ini,把扩展配置行改成完全匹配实际文件名,示例:
不要加多余的版本标识,PHP会自动适配当前环境。extension=php_pdo_sqlsrv.dll
2. 验证PHP与扩展的兼容性
- 运行
php -v,确认你的PHP版本(如7.4.x)、是否为NTS(非线程安全)、位数(x64/x86) - 下载的pdo_sqlsrv扩展必须完全匹配这三个参数:主版本一致、NTS/TS对应、位数相同,不匹配会直接加载失败。
3. 补全依赖驱动
pdo_sqlsrv依赖Microsoft ODBC Driver for SQL Server,缺失这个驱动会触发"找不到模块"的错误:
- 安装对应版本的ODBC驱动(建议选兼容你SQL Server版本的最新版)
- 安装后重启CLI窗口,再测试扩展加载。
4. 确认php.ini的实际加载路径
PHP CLI可能加载的不是你修改的php.ini:
- 运行
php --ini,查看Loaded Configuration File的路径,确保你修改的是这个文件 - 如果显示
(none),手动指定配置文件路径测试:php -c C:\php\php.ini -m
5. 检查文件权限与完整性
- 确认ext目录和扩展文件有读取权限,右键文件→属性→安全,确保当前用户拥有读取权限
- 重新下载扩展包替换现有文件,避免文件损坏导致加载失败
验证方法
修改配置后,在CMD运行:
php -m | findstr "pdo_sqlsrv"
如果输出pdo_sqlsrv,说明扩展加载成功。
内容的提问来源于stack exchange,提问作者Exosylver
相关产品推荐
相关产品推荐

