Windows10下XAMPP(PHP7.2)安装SQLSRV扩展失败问题及解决
PHP 7.2(XAMPP 3.2.2)SQLSRV扩展加载失败问题的解决
问题回顾
你在Windows 10环境下给XAMPP 3.2.2(内置PHP 7.2)安装SQLSRV扩展时遇到了加载失败的情况:
- 已经下载了对应版本的.dll文件并放到
xampp/php/ext目录 - 在
php.ini中配置了extension=php_pdo_sqlsrv_72_nts和extension=php_sqlsrv_72_nts - 重启Apache后,phpinfo页面里找不到该扩展;在XAMPP shell执行
php命令时,弹出错误:PHP Startup: Unable to load dynamic library 'php_pdo_sqlsrv_72_nts' (tried: C:\xampp\php\ext\php_pdo_sqlsrv_72_nts (Module was not found.) - 你的
extension_dir设置为extension_dir="C:\xampp\php\ext",PHP架构为x86,这两项都是正确的。
错误原因
XAMPP默认搭载的是线程安全(TS,Thread Safe)版本的PHP,而你最初选择并配置的是非线程安全(NTS,Non Thread Safe)版本的扩展文件。PHP的扩展必须和自身的线程安全属性完全匹配,否则会出现无法加载的情况。
解决步骤(你已自行解决,这里整理成标准流程)
- 下载对应版本的线程安全(TS)版SQLSRV扩展文件(需匹配PHP 7.2、x86架构)
- 将
xampp/php/ext目录中的NTS版.dll文件替换为TS版 - 修改
php.ini中的扩展配置,把原来的NTS后缀改为TS:extension=php_pdo_sqlsrv_72_ts extension=php_sqlsrv_72_ts - 重启Apache服务器,再次访问phpinfo页面,就能看到SQLSRV扩展已成功加载。
内容的提问来源于stack exchange,提问作者Greg Ostry
相关产品推荐
相关产品推荐

