Windows Server 2012 r2 + XAMPP + SqlSrv = 到目前为止不成功
Posted
技术标签:
【中文标题】Windows Server 2012 r2 + XAMPP + SqlSrv = 到目前为止不成功【英文标题】:Windows Server 2012 r2 + XAMPP + SqlSrv = unsuccessful so far 【发布时间】:2015-06-26 21:33:47 【问题描述】:我有一个安装了 XAMPP 的 Windows 2012 R2 服务器。我需要连接到 Microsoft SQL Server 数据库,但我看到不再支持 mssql 库,我被重定向到 official Microsoft package SqlSrv。
我已将所有文件解压缩到 d:\xampp\php\ext
,并在我的 php.ini 中添加了 extension=php_pdo_sqlsrv_56_nts.dll
。
使用 XAMPP 的控制面板,我重新启动了 Apache,但它没有工作。我总是收到错误:
[20-Apr-2015 08:38:08 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\xampp\php\ext\php_pdo_sqlsrv_56_nts.dll' - The specified module could not be found.
in Unknown on line 0
[20-Apr-2015 08:38:08 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\xampp\php\ext\php_pdo_sqlsrv_56_nts.dll' - The specified module could not be found.
in Unknown on line 0
我已经检查了几次以确保文件名是正确的。该文件确实存在。所有系统用户都可以完全控制文件(\ext 目录中的任何文件)。切换到ts
或non-pdo
变体也没关系。
我正在运行 PHP 5.6.3。有什么建议?我没有想法去寻找这个问题......
更新 1: 通过几个表单帖子,我遇到了要安装的 C++ Redistributable,所以我已经涵盖了。但是我仍然错过了一些 DLL 的 dodependency.exe (Dependency Walker)。
到目前为止,我缺少以下 DLL:
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL PHP5.DLL API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL IESHIMS.DLL SETTINGSYNCPOLICY.DLL WLANAPI.DLL我认为它们是我丢失的包裹的一部分。我还看到了一些关于安装最新的 SQL Server Native Client 的帖子。但据我发现最新版本是 11,但对于 Windows 2012R2 来说太旧了。
更新 2: 在this forum page 上,我看到一个有用的反应(德语)告诉SqlSrv 不能使用最新的可用XAMPP PHP 版本。所以我现在用 PHP 5.5.19 重新安装了 XAMPP,但这仍然没有帮助。
如何进行?
【问题讨论】:
【参考方案1】:好的,我发现了问题所在。
此时,我正在使用 XAMPP 在我的 Windows 2012R2 机器上成功运行 SqlSrv。主要问题是我使用的是*nts.dll
文件。使用 Dependency Walker 我能够获得未成功加载的 dll 列表。列出的 DLL 之一是 php5.dll
。我花了一段时间才发现这很奇怪。我检查了我的 php 文件夹,我在其中看到了文件 php5ts.dll
,但没有 php5.dll
所以我在 Google 上搜索了 sqlsrv php5.dll
,我遇到了 this page from Microsoft。
该页面列出了哪些驱动程序与 PHP 的哪些 DLL 一起使用。我已将模块从nts
切换到ts
,现在一切都按预期工作。目前,我还安装了 C++ 可再发行组件来修复 MSVCP110.dll 问题,但我不确定这是否是使其正常工作的必要条件。如果你遇到同样的问题,你可能还需要安装这个补丁(Microsoft downloadpage,我已经下载了VSU_4\vcredist_x86.exe
)
祝未来寻求解决方案的人好运!
【讨论】:
以上是关于Windows Server 2012 r2 + XAMPP + SqlSrv = 到目前为止不成功的主要内容,如果未能解决你的问题,请参考以下文章
windows server 2012 r2 中怎样开启文件和块级重复数据删除
如何去除 windows server 2012 r2 自动锁定
windows server 2012 r2(GUI)密码遗失处理