我需要安装一个使用适用于 PHP 的 SQL Server 驱动程序。服务器是一台运行 Windows 2000 Server SP4 的旧机器。我已经安装了整个堆栈,没有任何问题:
- Apache 2.2.14
- PHP 5.3.1
- SQL Server 2005 快速版
- SQL Server 管理工作室 Express
但有一个组件没有按预期工作:SQL Server 本机客户端。我一调用 sqlsrv_connect() 就收到错误消息。我找到了四个不同的版本,但都不起作用:
如果我不安装它或者安装2005版本:
- SQLSTATE: IMSP
- 代码:-49
- 消息:SQL Server Driver for PHP 需要 SQL Server 2008 Native Client ODBC Driver(SP1 或更高版本)才能与 SQL Server 通信。该 ODBC 驱动程序当前未安装。访问以下 URL 以下载 SQL Server 2008 Native Client ODBC 驱动程序 for x86:http://go.microsoft.com/fwlink/?LinkId=163712
如果我安装2008版本:
- SQLSTATE:IM003
- 代码:160
- 消息:由于系统错误 127(SQL Server Native Client 10.0),无法加载指定的驱动程序。
这SQL Server Driver for PHP 的系统要求1.1 包括 Windows 2000 Service Pack 4。然而,SQL Server 2008 Native Client 的系统要求提到 Windows Server 2003 Service Pack 2 或更高版本。
任何想法?
答案1
我认为 SQL 2008 Native Client 不支持 Windows 2000。您是否有可以安装此应用程序的 Windows 2003 系统?
答案2
我从 Serban Iliescu 那里得到了进一步的信息官方论坛:
经过进一步调查,我发现 SQL Server Native Client 2008(又名 SNAC 10)无法在 Windows 2000 上加载,因为操作系统无法满足某些 dll 依赖项。目前已记录了针对 SNAC 10 的缺陷,可通过优雅降级来解决此问题,但该缺陷尚未解决。同时,您可以尝试链接到 SNAC 9(SQL Server Native Client 2005)的 PHP 驱动程序的先前版本(即版本 1.0),SNAC 9 应该可以在 Windows 9 上运行。
总结:
- PHP 1.1 的 SQL Server 驱动程序需要 SQL Server Native Client 2008
- SQL Server Native Client 2008 存在已知错误,无法在 Windows 2000 下加载
- SQL Server Native Client 2005 在 Windows 2000 下运行良好
- SQL Server Driver for PHP 1.0 只需要 SQL Server Native Client 2005
我安装了旧版本的 PHP 驱动程序和 2005 版的 Native Client。我还必须将 PHP 从 5.3 降级到 5.2。
我的应用程序似乎可以与旧版本的 PHP 驱动程序配合使用。这样演示终于可以正常运行了。