SqlSrv驱动程序没有与IIS 10和PHP 5.6加载

问题描述:

我已经在全新的Windows 10机器上安装了一个新的IIS 10服务器,其中PHP 5.6.31VC11 x64非线程安全(目前无法使用PHP7)。 PHP现在运行良好,phpinfo()正确显示一切。SqlSrv驱动程序没有与IIS 10和PHP 5.6加载

我刚刚安装了PHP SQL驱动程序,但未加载。它没有出现在phpinfo(),当我尝试在代码中使用它,我得到以下PHP错误:

PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in test.php:3 
Stack trace: 
#0 test.php(3): PDO->__construct('sqlsrv:server=...', '', '') 

要安装PHP SQL司机,我做了以下内容:

PHP extensions

[PHP_XDEBUG-2.5.5-5.6-VC11-NTS-X86_64] 
extension=php_xdebug-2.5.5-5.6-vc11-nts-x86_64.dll 
[PHP_PDO_ODBC] 
extension=php_pdo_odbc.dll 
[PHP_PDO_SQLSRV_56_NTS] 
extension=php_sqlsrv_56_nts.dll 
[PHP_SQLSRV_56_NTS] 
extension=php_sqlsrv_56_nts.dll 

这一切看起来正确的给我,我已经成功地在其他机器上这样做过。我觉得我错过了简单的事情。

其他一些注意事项:

  • 的PHP错误日志是空的。
  • 我试过加载我下载的所有其他dll文件(例如针对5.5,5.4等),但它不会改变任何东西。

值得一提的是,我安装的Xdebug就好了,它显示phpinfo()起来。

我已经通过使用x86而不是x64的PHP解决了此问题。我猜SQL驱动程序不是为x64设计的(尽管我无法在任何地方看到它)。

只要我更改为PHP 5.6 VC11 x86 Non Thread Safe一切都运行得更好。

请注意,您需要Visual C++ Redistributable for Visual Studio 2012 x86才能正常工作。如果您已经安装了x64可再发行组件,则需要安装专为x86设计的版本。

+0

用于PHP 7的SQL Server驱动程序支持x64。 – alalp