2016-07-15 60 views
5

Mevcut bir MS SQL Server veritabanına bağlanmak zorunda olan bir Laravel 5.1 projesi üzerinde çalışıyorum. Projem şu anda Apache 2.4.18 kullanan bir Ubuntu 16.04 LTS sunucusunda. Ben makine üzerinde SQL Server (sürüm 13.0.0.0) için Microsoft ODBC Linux sürücüsü yüklü ve Sqlcmd komutları kullanarak test ettik:Laravel: PDO İstisnası, sürücü yüklü ve test edilmiş olsa bile sürücüyü bulamıyor

sqlcmd -S DatabaseIPAddress -U DatabaseUsername 

Her şey yolunda çalıştı. Veritabanına hiç sorun yok. Veritabanımı php artisan ile taşımaya gittiğimde, işe yaramıyor. Veritabanı giriş bilgileri .env dosyasında kaydedilir ve SQL Server olarak ayarlanır

'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' => '', 
], 

: Ben DatabaseFunctions.php ayarlanan, bu var

[PDOException] 
    could not find driver 

: hatası alıyorum varsayılan:

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

Neler olup bittiğine dair herhangi bir yardım? İnternette bir sürü mesaj okudum (here ve here). İnsanların farklı veri tabanları ile benzer sorunları vardı. Uzantıları hakkında bazı satırları ekleyerek php.ini dosyalarının yapılandırmasını değiştirmek zorunda kaldılar. Belki bu çizgiler boyunca bir şey?

test, yeniden
; 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 

ama boşuna hayır için: php.ini ben gibi, işe yarayabilecek düşündüm dosyasında bazı çeşitli şeyler denedim. Kafamı bir süreliğine duvara yaslıyordum. Herhangi bir yardım büyük takdir edilecektir. Teşekkürler.

+3

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

+1

Harika, teşekkürler! Bu php7.0-sybase kullanarak hafif bir değişiklik ile yaptı. Çok teşekkürler! Üzgünüm araştırmamda bu mesajı kaçırdım. – Keegan

cevap

2

php.ini

mssql.charset = "UTF-8" 

Referans Bu satırı ekleyin

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

/etc/freetds/freetds.conf bu adımları
sudo apt-get install php5-mssql
Güncelleme izleyin: Laracast discussion