2016-07-15 110 views
5

Sto lavorando su un progetto Laravel 5.1 che deve connettersi a un database MS SQL Server esistente. Il mio progetto è attualmente su un server LTS Ubuntu 16.04 utilizzando Apache 2.4.18. Ho installato il driver ODBC di Microsoft Linux per SQL Server (versione 13.0.0.0) sulla macchina e provato manualmente con il comando sqlcmd:Laravel: Eccezione PDO, impossibile trovare il driver anche se il driver è installato e testato

sqlcmd -S DatabaseIPAddress -U DatabaseUsername 

tutto ha funzionato bene. Posso accedere al database senza problemi. Quando vado a migrare il mio database con php artisan, tuttavia, non funziona. Ottengo l'errore:

[PDOException] 
    could not find driver 

Ho questo come impostazione in 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' => '', 
], 

Le informazioni di login database viene salvato nel file .env e SQL Server è impostato come predefinito:

'default' => env('DB_CONNECTION', 'sqlsrv'), 

Qualsiasi aiuto da quello che potrebbe essere in corso? Ho letto un sacco di post su internet (here e here). Le persone hanno avuto problemi simili con diversi tipi di database. Hanno dovuto cambiare la configurazione del loro file php.ini aggiungendo alcune righe sulle estensioni. Forse qualcosa in questo senso? Ho provato alcune cose diverse nel file php.ini che ho pensato che potrebbe funzionare, come ad esempio:

; 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 

riavviato, testato, ma senza alcun risultato. Sto sbattendo la testa contro il muro per un po 'su questo. Qualsiasi aiuto sarebbe molto apprezzato. Grazie.

+3

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

+1

Impressionante, grazie! Lo ha fatto con la leggera modifica dell'uso di php7.0-sybase. Grazie mille! Mi dispiace ho perso quel post nella mia ricerca. – Keegan

risposta

2

le seguenti operazioni
sudo apt-get install php5-mssql
Aggiornamento /etc/freetds/freetds.conf

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

Aggiungi questa linea al php.ini

mssql.charset = "UTF-8" 

Riferimento: Laracast discussion

Problemi correlati