有没有办法将 sqlsrv.dll 用于 PHP 7.2?

Is there a way to use sqlsrv.dll for PHP 7.2?

因为我无法安装旧版本的 php 并且 sqlsrv 没有针对 PHP 7.2 的更新,有没有办法继续使用它?每次我尝试在我的 Windows Server 2012 R2 上安装 PHP 7.1.14 时,我得到 "The FastCGI process exited unexpectedly",但是 PHP 7.2 一切正常。

那么如何在 PHP 7.2 中使用 sqlsrv?

在撰写本文时,PHP 7.2 是使用 VC15 构建的,sqlsrv driver 的最新稳定版本是使用 VC14 的 4.3.0。然而,有一个适用于 VC15 的 sqlsrv 5.2.0rc1。

所以,你有两个选择:

选项 1:安装 PHP7.1

为此,您需要 Visual C++ Redistributable for Visual Studio 2015 的正确 (x86/x64) 版本;也称为 VC14。如果您愿意,可以安全地安装两者。我倾向于安装从 2005 年到今天的所有可再发行组件,并且没有 运行 出现问题。

如果 sqlsrv 驱动程序阻止 PHP 启动,请尝试从 pecl releases.

下载正确的 VC14 版本

选项 2:安装 PHP 7.2

为此,您需要 Visual C++ Redistributable for Visual Studio 2017 的正确 (x86/x64) 版本;也称为 VC15。

如果 sqlsrv 驱动程序阻止 PHP 启动,请尝试从 pecl releases 下载正确的 VC15 版本。目前最新的是 5.2.0rc1,因此它很可能会正常工作,但不建议在生产环境中使用它。

重要提示

NTS 用于 IIS 服务器,TS 用于 Apache。当您下载 PHP 或其任何 drivers/extensions 例如 sqlsrv.

时,这一点很重要