Windows Server 2012 r2 + XAMPP + SqlSrv = 到目前为止不成功
Windows Server 2012 r2 + XAMPP + SqlSrv = unsuccessful so far
我有一个 Windows 2012 R2 服务器,安装了 XAMPP。我需要连接到 Microsoft SQL 服务器数据库,但我看到不再支持 mssql-library,我被重定向到 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,根据 depends.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 来说太旧了。
更新二:
在 this forum page 上,我看到一个有用的反应(德语)告诉 SqlSrv 不能使用最新的 XAMPP PHP 版本。所以我现在用 PHP 5.5.19 重新安装了 XAMPP,但这仍然没有帮助。
如何进行?
好的,我发现问题了。
此刻我在 Windows 2012R2 机器上成功地 运行ning SqlSrv XAMPP。主要问题是我使用的是 *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 2012 R2 服务器,安装了 XAMPP。我需要连接到 Microsoft SQL 服务器数据库,但我看到不再支持 mssql-library,我被重定向到 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,根据 depends.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 来说太旧了。
更新二: 在 this forum page 上,我看到一个有用的反应(德语)告诉 SqlSrv 不能使用最新的 XAMPP PHP 版本。所以我现在用 PHP 5.5.19 重新安装了 XAMPP,但这仍然没有帮助。
如何进行?
好的,我发现问题了。
此刻我在 Windows 2012R2 机器上成功地 运行ning SqlSrv XAMPP。主要问题是我使用的是 *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
)
祝未来的解决方案寻求者好运!