【发布时间】: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,但这仍然没有帮助。
如何进行?
【问题讨论】:
标签: php sql-server configuration xampp sqlsrv