phpEnv下安装SQL Server驱动(sqlsrv)实战

冬强姑娘_4883

冬强姑娘_4883

2026-05-05

911人浏览

原创

phpEnv 下 sqlsrv 扩展安装失败主因是 PHP 架构(x64/x86)、线程模型(NTS/TS)、扩展 DLL 名称及系统 ODBC 驱动三者未严格匹配;须通过 php -i 确认架构与线程类型,下载对应版本 sqlsrv DLL(如 php_sqlsrv_81_nts_x64.dll),放入 ext 目录并配置 php.ini 启用 extension=sqlsrv 和 extension=pdo_sqlsrv,再安装 ODBC Driver 18 for SQL Server,并使用 localhost 而非 127.0.0.1 连接。

phpenv下安装sql server驱动(sqlsrv)实战

phpEnv 下装不了 sqlsrv,基本是因为扩展名、PHP 架构、ODBC 驱动三者没对齐——不是“没下载对”,而是“根本没匹配上”。

确认 phpEnv 的 PHP 架构和线程模型

phpEnv 默认打包的 PHP 多为 NTS(非线程安全)+ x64,但部分旧版或自定义包可能是 TS 或 x86。错配会导致 php_sqlsrv_*.dll 加载失败,且 php -m 不报错、extension_loaded('sqlsrv') 返回 false。

  • 打开终端,执行 php -v 看版本(如 8.1.22)
  • 执行 php -i | findstr "Architecture Thread"(Windows)或 php -i | grep -E "(Architecture|Thread)"(Linux/macOS),确认输出含 x64 和 NTS
  • 若显示 TS,必须用 _ts.dll;若显示 x86,不能用 _x64 后缀的 DLL

下载并启用正确的 sqlsrv 扩展 DLL

微软已停止为 phpEnv 这类集成环境单独打包,必须手动从官方驱动页选对应版本。当前(2026 年)最新稳定版是 SQLSRV 5.11,支持 PHP 8.0–8.3。

  • 访问 https://www.php.cn/link/7322c71e66f72ebb1cf52d9a6abc90ca,找 php_sqlsrv_81_nts_x64.zip(按你实际 PHP 版本调整)
  • 解压后,把 php_sqlsrv_81_nts_x64.dll 和 php_pdo_sqlsrv_81_nts_x64.dll 放进 phpEnv 对应 PHP 版本的 ext/ 目录(例如 phpenv/php/php-8.1.22/ext/)
  • 编辑该 PHP 版本的 php.ini(通常在 phpenv/php/php-8.1.22/conf/php.ini),末尾加两行:
    extension=sqlsrv
    extension=pdo_sqlsrv
    ⚠️ 不要写带完整路径或 .dll 后缀的写法,phpEnv 会自动识别

必须安装系统级 ODBC 驱动(Windows)

phpEnv 自带的 PHP 不带 ODBC 驱动,sqlsrv 扩展加载成功也不代表能连——连接时会直接报 Named Pipes Provider: Could not open a connection 或 TCP Provider: Error code 0x2746。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
  • 去 ODBC Driver 18 for SQL Server 下载安装程序(msi)
  • 运行安装,默认路径即可,无需重启,但需确保安装后有 C:\Windows\System32\msodbcsql18.dll
  • 验证:命令行执行 odbcad32 → “驱动程序”页签,能看到 ODBC Driver 18 for SQL Server

连接测试时 localhost 比 127.0.0.1 更可靠

SQL Server 默认启用命名管道(Named Pipes),而 phpEnv 下的 PHP 常因 TCP/IP 设置未开或防火墙拦截导致 127.0.0.1 连接被拒,错误信息常为 Connection refused 或 Server is not found or not accessible。

  • 用 localhost 代替 IP 地址:
    $conn = sqlsrv_connect('localhost', ['Database' => 'testdb', 'Uid' => 'sa', 'PWD' => 'xxx']);
  • 如果仍失败,检查 SQL Server 配置管理器 → “SQL Server 网络配置” → 对应实例的 “协议” → 确保 TCP/IP 和 Named Pipes 均为“已启用”
  • 连接字符串中不要硬编码端口(如 localhost,1433),除非明确禁用了动态端口且只用固定端口

最易被忽略的一点:phpEnv 切换 PHP 版本后,php.ini 是独立的,改了 A 版本的配置,B 版本依然无效;ODBC 驱动装一次就行,但扩展 DLL 必须每个 PHP 版本都放一份。

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

phpenv php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

11584

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

6681

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2175

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

4248

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4954

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3891

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

5597

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

4382

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

12322

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 301人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习