sqlsrv在azure上找不到司机laravel

时间:2016-05-16 02:17:01

标签: php sql-server laravel azure pdo

部署应用程序后,我更改了我的env文件,以匹配已启动且已在运行的sql server的连接凭据。

访问网站时出错

> 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', 'xxxx@xxxx', 'xxxxxx', array('0', '2', '0', false)) in Connector.php
> line 55

我尝试从azure portal打开控制台并编写php artisan migrate,它显示了同样的错误。

enter image description here

任何人都知道如何才能让这项工作成功?

1 个答案:

答案 0 :(得分:3)

您是否在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的扩展名。

  4. 更新

    由于PHP 7的库sqlsrvpdo sqlsrv现已可用。请尝试以下操作在Azure Web Apps上启用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 App需要带有nts版本的X86。请使用之前解压缩的msphpsql-PHP-7.0\binaries\x86中的库,以及使用php_sqlsrv_7_nts.dllphp_pdo_sqlsrv_7_nts.dll
    3. 配置设置后重新启动站点。
    4. 如有任何疑问,请随时告诉我。