【问题标题】:sqlsrv could not find driver laravel on azuresqlsrv 在 azure 上找不到驱动程序 laravel
【发布时间】:2016-09-11 18:19:22
【问题描述】:

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

访问网站时出现错误

> 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 门户打开控制台并写入 php artisan migrate,它显示相同的错误。

任何人都知道我怎样才能做到这一点?

【问题讨论】:

    标签: php sql-server laravel azure pdo


    【解决方案1】:

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

    更新

    由于 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需要X86和nts版本。请使用你之前解压的msphpsql-PHP-7.0\binaries\x86中的库,使用php_sqlsrv_7_nts.dllphp_pdo_sqlsrv_7_nts.dll)
    3. 配置设置后重启网站。

    如有任何疑问,请随时告诉我。

    【讨论】:

    • 我正在使用 php7 ,sqlsrv 扩展仍然不可用:/
    • 我的应用程序不能只在 php7 中运行。你没有解决办法,我认为只能等待。谢谢你的帮助,加里
    • 抱歉,我发现 PHP 7 的库现在可用。请参考更新。
    • 您应该在 windows 上使用的特定版本是这里的 RTW 版本:github.com/Azure/msphpsql/releases/tag/v4.0-RTW
    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2022-05-18
    • 2021-04-17
    • 2018-03-02
    • 2019-05-16
    相关资源
    最近更新 更多