配置PHP 7连接SQL Server 2014:驱动无法加载问题求助
解决PHP 7.1无法加载SQL Server 2014驱动的问题
我来帮你一步步排查并解决这个驱动加载失败的问题,这种情况大多是架构不匹配、扩展文件错误或者配置项没生效导致的,咱们逐个击破:
1. 先确认PHP的核心参数(关键!)
首先得搞清楚你的PHP是32位还是64位,以及是否启用线程安全(TS)——这两个参数直接决定了你要下载哪个版本的驱动:
- 运行
php -v命令,或者查看phpinfo()里的Architecture(架构)和Thread Safety(线程安全)项; - 如果
Thread Safety显示Enabled,就选TS版本的扩展;显示Disabled则选NTS版本。
2. 下载匹配的SQL Server PHP驱动
PHP 7.1对应的是Microsoft Drivers for PHP for SQL Server的4.0~5.3版本,你需要下载和PHP架构、TS/NTS完全匹配的扩展文件:
- 下载后会得到两个核心dll:
php_sqlsrv_71_xxx.dll和php_pdo_sqlsrv_71_xxx.dll(如果需要PDO支持的话); - 把这些dll放到你的PHP安装目录下的
ext文件夹里,比如C:\Program Files\PHP\v7.1\ext。
3. 修改正确的php.ini文件
很多人会犯的错误是修改了错误的php.ini——IIS使用的php.ini可能和你手动找到的不一样:
- 查看phpinfo()里的
Loaded Configuration File项,这才是当前生效的php.ini路径; - 打开这个php.ini,在
Dynamic Extensions部分添加:extension=php_sqlsrv_71_ts_x64.dll # 替换成你实际的文件名,比如32位NTS就用php_sqlsrv_71_nts_x86.dll extension=php_pdo_sqlsrv_71_ts_x64.dll # 可选,如果你需要PDO连接SQL Server的话 - 注意:不要加引号,直接写文件名即可。
4. 安装必要的依赖组件
SQL Server PHP驱动依赖两个关键组件,缺一不可:
- VC++ Redistributable for Visual Studio 2015:PHP 7.1需要VC14运行库,下载对应架构的版本安装(32位PHP装32位运行库,64位装64位);
- ODBC Driver 13 for SQL Server:这是底层驱动,必须安装,同样要匹配系统架构。
5. 重启服务并验证
- 打开命令提示符,运行
iisreset重启IIS服务; - 再次访问phpinfo(),搜索
sqlsrv或pdo_sqlsrv,如果能看到对应的模块信息,说明驱动加载成功了。
6. 排查错误日志(如果还是失败)
如果驱动还是没加载,查看PHP的错误日志找线索:
- 在phpinfo()里找到
error_log项,定位到日志文件路径; - 打开日志,搜索类似
Unable to load dynamic library的错误信息,通常会告诉你是找不到dll,还是依赖缺失,根据提示解决即可。
服务器端配置提示
你的Windows Server 2008配置步骤和开发机完全一致,同样要注意:
- 匹配PHP的架构、TS/NTS版本;
- 安装VC14运行库和ODBC Driver 13;
- 修改正确的php.ini并重启IIS。
最后可以写个简单的测试脚本验证连接:
<?php $serverName = "localhost\SQLEXPRESS"; // 你的SQL Server实例名 $connectionInfo = ["Database" => "你的数据库名"]; $conn = sqlsrv_connect($serverName, $connectionInfo); if ($conn) { echo "SQL Server连接成功!"; } else { echo "连接失败:<br>"; print_r(sqlsrv_errors(), true); } ?>
内容的提问来源于stack exchange,提问作者RCDAWebmaster
相关产品推荐
相关产品推荐

