我在尝试将 Laravel 应用程序连接到 SQL Server 数据库时遇到问题。我在 WSL 2 上使用 Ubuntu 24.04 和 PHP 8.3.11 运行此设置。以下是问题的详细概述以及我迄今为止所做的事情:
安装了适用于 Ubuntu 的 Microsoft ODBC 驱动程序:我按照官方说明安装了适用于 SQL Server 的 ODBC 驱动程序。
安装了
sqlsrv
和 pdo_sqlsrv
扩展:我使用官方 Microsoft documentation for PHP with FPM 安装了这些扩展。
审查了 Laravel 的
config/database.php
:我确保 SQL Server 连接的配置正确且符合预期参数。
更新了
.env
文件:我修改了.env文件以指定SQL Server连接参数。
尽管执行了上述所有步骤,当我尝试运行 Laravel 应用程序时,我在尝试登录时收到
could not find driver
错误消息。
附加信息
sqlsrv
和 pdo_sqlsrv
是否已正确安装,并且我检查了它们在运行 php -m
时是否列出。每个扩展程序都有自己的 .ini
文件,但我还在我的 extension=pdo_sqlsrv.so
文件中添加了 extension=sqlsrv.so
和 php.ini
行,以确保扩展程序无论如何都会自动加载。那么,综上所述,是什么导致 Laravel 尽管安装了
pdo_sqlsrv
驱动程序却无法识别它呢?我可以采取任何其他配置或故障排除步骤来解决此问题吗?
解决方案:
我能够通过直接在运行应用程序的容器内安装驱动程序来解决该问题。最初,我尝试在主机上安装 WSL 2 中的驱动程序,但由于应用程序在容器内运行,因此需要在该容器的环境中安装驱动程序。
以下是修复的快速摘要:
执行此操作后,不再出现错误。