2017-08-01 3 views
0

J'ai installé un nouveau serveur IIS 10 sur une nouvelle machine Windows 10 avec PHP 5.6.31VC11 x64 Non Thread Safe (ne peut pas utiliser PHP7 pour le moment). PHP fonctionne maintenant bien et phpinfo() affiche tout correctement.Le pilote SqlSrv ne se charge pas avec IIS 10 et PHP 5.6

Je viens d'installer le pilote SQL PHP mais il n'est pas en cours de chargement. Il n'est pas apparaître dans phpinfo() et lorsque je tente de l'utiliser dans le code j'obtiens l'erreur PHP suivante:

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=...', '', '') 

Pour installer le pilote SQL PHP, je l'ai fait ce qui suit:

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 

Tout semble correct pour moi et je l'ai déjà fait avec succès sur d'autres machines avant. J'ai l'impression qu'il me manque quelque chose de simple.

Quelques autres notes:

  • L'erreur PHP journal est vide.
  • J'ai essayé de charger tous les autres fichiers dll que j'ai téléchargés (tels que ceux destinés à 5.5, 5.4 etc) mais cela ne change rien.

Il convient de noter que j'ai installé Xdebug très bien et il est montrant en phpinfo().

Répondre

1

J'ai résolu ce problème en utilisant PHP pour x86 et non x64. Je devine que les pilotes SQL ne sont pas conçus pour x64 (bien que je ne pouvais pas voir cela n'importe où).

Dès que j'ai changé à PHP 5.6 VC11 x86 Non Thread Safe tout a fonctionné beaucoup mieux.

Notez que vous avez besoin de Visual C++ Redistributable for Visual Studio 2012 x86 pour que cela fonctionne. Si vous avez déjà installé le redistribuable x64, vous devrez installer la version conçue pour x86.

+0

Les pilotes SQL Server pour PHP 7 prennent en charge x64. – alalp