sqlsrv在azure上找不到驱动程序laravel

问题描述:

部署应用程序后,我更改了我的env文件以匹配已启动并已在运行的sql服务器的连接凭据。sqlsrv在azure上找不到驱动程序laravel

当我访问的网站

> PDOException in Connector.php line 55: could not find driver in 
> Connector.php line 55 at 
> PDO->__construct('sqlsrv:Server=xxxx.database.windows.net;Database=xxxx', '[email protected]', 'xxxxxx', array('0', '2', '0', false)) in Connector.php 
> line 55 

我试图从蔚蓝的门打开控制台,写php artisan migrate有一个错误,它显示了同样的错误。

enter image description here

任何人都知道如何管理,使这项工作?

您是否启用了Azure上的php_sqlsrvphp_pdo_sqlsrv扩展?您可以使用phpinfo()来检查Azure上PHP运行时的变量和扩展。

默认情况下,DLL库php_sqlsrvphp_pdo_sqlsrv已安装在Azure上的PHP ext文件夹中,但尚未在PHP运行时配置。所以我们需要手动配置扩展名:

  1. 在Azure上应用程序的根目录下创建一个名为.user.ini的文件。
  2. .user.ini以下内容:

    extension=php_pdo_sqlsrv.dll 
    extension=php_sqlsrv.dll 
    
  3. 重新启动应用程序。再次检查sqlsrvpdo_sqlsrv的扩展名。

更新

由于库sqlsrvpdo sqlsrv为PHP 7现已上市。请尝试以下到Azure上的Web应用程序启用PHP 7 SQLSRV扩展:

  1. https://github.com/Azure/msphpsql/tree/PHP-7.0下载扩展包PHP 7,解压缩为以下使用。
  2. 遵循的https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtime指南上传DLL库和PHP运行时配置。(默认情况下,Azure的Web应用程序需要X86与NTS版本。请使用图书馆msphpsql-PHP-7.0\binaries\x86你之前解压缩,并使用php_sqlsrv_7_nts.dllphp_pdo_sqlsrv_7_nts.dll
  3. 配置设置后重新启动站点。

任何进一步的关注,请随时让我知道。

+0

我使用的是php7,sqlsrv扩展名仍然不可用:/ –

+0

我无法使用我的应用只能运行在php7中。你没有解决办法,我只想等待。感谢您的帮助gary –

+1

对不起,我发现PHP 7的库现在可用。请参阅更新。 –