2016-07-15 126 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

相關問題