我正在开发一个 Laravel 5.1 项目,该项目必须连接到现有的 MS SQL Server 数据库。我的项目当前位于使用 Apache 2.4.18 的 Ubuntu 16.04 LTS 服务器上。我已在计算机上安装了适用于 SQL Server 的 Microsoft ODBC Linux 驱动程序(版本 13.0.0.0),并使用 sqlcmd 命令手动测试它:
sqlcmd -S DatabaseIPAddress -U DatabaseUsername
一切都很好。我可以正常登录数据库。然而,当我用 php artisan 迁移数据库时,它不起作用。我收到错误:
[PDOException]
could not find driver
我已将其作为 database.php 中的设置:
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
数据库登录信息保存在 .env 文件中,SQL Server 设置为默认值:
'default' => env('DB_CONNECTION', 'sqlsrv'),
对于可能发生的情况有什么帮助吗?我在网上读了很多帖子(here https://stackoverflow.com/questions/22463614/php-artisan-migrate-throwing-pdo-exception-could-not-find-driver-using-larav and here https://stackoverflow.com/questions/25329302/laravel-error-pdoexception-could-not-find-driver-in-postgresql)。人们在使用不同类型的数据库时也遇到过类似的问题。他们必须更改 php.ini 文件的配置,添加一些有关扩展的行。也许有类似的事情?我在 php.ini 文件中尝试了一些我认为可能有效的方法,例如:
; This is the extension for the Microsoft SQLSRV ODBC Driver.
; The driver seems to be located at this file path.
extionsion=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
重启,测试,但没有效果。我已经在这件事上把头撞在墙上有一段时间了。任何帮助将不胜感激。谢谢。