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 目录中的任何文件)。切换到tsnon-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 自动锁定

windows server 2012 r2(GUI)密码遗失处理

windows server 2012 r2 怎么设置开机自动启动

windows server 2012 r2怎么安装