You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在IIS7中配置PHP7.2连接SQL Server的PDO问题求助

IIS7下PHP7.2无法加载SQL Server PDO扩展的排查解决步骤

我之前帮朋友排查过几乎一模一样的问题,给你列几个一步步走的排查点,应该能定位到问题:

  • 确认DLL版本完全匹配:PHP7.2的SQL Server扩展分线程安全(TS)和非线程安全(NTS),还要对应x86/x64架构,这一点错了绝对加载不了。你可以先看phpinfo里的Thread Safety项——显示enabled就是TS版,否则是NTS;再看Architecture项确认是x86还是x64。然后检查你放的DLL文件名,比如TS x64的PHP7.2对应的PDO扩展应该是php_pdo_sqlsrv_72_ts_x64.dll,必须和你的PHP环境完全对应。

  • 验证php.ini修改的准确性:

    • 首先确认你修改的是IIS实际使用的php.ini:打开phpinfo页面,找到Loaded Configuration File项,复制路径,去修改这个文件,别改错了CLI版的ini。
    • 然后检查扩展启用语句,比如如果DLL全名是php_pdo_sqlsrv_72_ts_x64.dll,那ini里要写extension=php_pdo_sqlsrv_72_ts_x64.dll,别只写extension=php_pdo_sqlsrv.dll(有些环境可能兼容,但保险起见用全名)。
    • 还要确认extension_dir配置的路径正确,比如extension_dir = "C:\PHP\ext"(换成你实际的扩展目录),路径不能写错,而且这个目录要有IIS进程的读取权限。
  • 必须重启整个IIS服务:修改php.ini后别只刷新网页,一定要彻底重启IIS。最简单的方法是打开命令提示符,运行iisreset命令,或者在IIS管理器里重启对应的应用程序池和网站——有时候只重启网站不够,必须重置整个IIS服务才能让新的php.ini生效。

  • 检查ODBC驱动依赖:SQL Server的PHP扩展依赖Microsoft ODBC Driver for SQL Server,PHP7.2需要的是13.1版本及以上(推荐17版),而且驱动架构要和PHP一致(x86/x64)。你可以去控制面板的「程序和功能」里看看有没有安装对应的驱动,如果没有就装一个——这是很多人忽略的点,没装ODBC驱动的话,哪怕DLL放对了也加载失败。

  • 查看PHP错误日志找线索:如果上面几步都没解决,就打开php.ini里的error_log配置,设置一个日志路径(比如error_log = "C:\PHP\logs\php_errors.log"),然后重启IIS,访问phpinfo页面,之后去日志文件里找关于pdo_sqlsrv的错误信息。比如日志里如果出现「Unable to load dynamic library 'php_pdo_sqlsrv.dll' - 找不到指定的模块」,那大概率是ODBC驱动没装或者DLL版本不对。

  • 检查IIS应用程序池架构:打开IIS管理器,找到你的网站对应的应用程序池,右键选「高级设置」,看「启用32位应用程序」选项——如果你的PHP是x64版,这里要设为False;如果是x86版,就设为True。架构不匹配的话,扩展也无法正常加载。

内容的提问来源于stack exchange,提问作者Aldrich Hipolito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:01:24