【发布时间】:2016-11-19 03:26:21
【问题描述】:
我正在开发一个必须连接到现有 MS SQL Server 数据库的 Laravel 5.1 项目。我的项目目前在使用 Apache 2.4.18 的 Ubuntu 16.04 LTS 服务器上。我已经在机器上安装了适用于 SQL Server(版本 13.0.0.0)的 Microsoft ODBC Linux 驱动程序,并使用 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 和here)。人们对不同类型的数据库也有类似的问题。他们不得不更改 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
重新启动,测试,但无济于事。在这个问题上,我已经把头撞在墙上一段时间了。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
太棒了,谢谢!通过对使用 php7.0-sybase 的轻微修改就可以做到这一点。非常感谢!抱歉,我在研究中错过了那篇文章。
标签: php sql-server laravel pdo odbc