2017-08-01 150 views
0

我已經在全新的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()起來。

回答

1

我已經通過使用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

相關問題