2016-07-15 120 views
5

我正在致力于连接到现有MS SQL Server数据库的Laravel 5.1项目。我的项目目前在使用Apache 2.4.18的Ubuntu 16.04 LTS服务器上。我已经安装了Microsoft ODBC驱动程序的Linux的机器上的SQL Server(版本13.0.0.0),并与SQLCMD命令手动测试过它:Laravel:PDO异常,即使驱动程序已安装并测试也找不到驱动程序

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'), 

对于可能发生什么有什么帮助?我读过一大堆网络上的帖子(herehere)。人们对不同类型的数据库有类似的问题。他们必须改变他们的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 

重新启动,测试,但无济于事。我一直在这边抨击我的头靠在墙上。任何帮助将不胜感激。谢谢。

+3

http://stackoverflow.com/questions/18213907/how-to-use-sql-server-connection-in-laravel –

+1

太棒了,谢谢!这是通过使用php7.0-sybase的轻微修改来实现的。非常感谢!抱歉,我在我的研究中错过了这篇文章。 – Keegan

回答

2

按照以下步骤
sudo apt-get install php5-mssql
更新/etc/freetds/freetds.conf

[global] 
# TDS protocol version 
; tds version = 4.2 
tds version = 8.0 
client charset = UTF-8` 

此行添加到的php.ini

mssql.charset = "UTF-8" 

参考:Laracast discussion

相关问题