Laravel:PDO Exception,即使安装并测试了驱动程序也无法找到驱动程序

Kee*_*gan 6 php sql-server odbc pdo laravel

我正在开发一个必须连接到现有MS SQL Server数据库的Laravel 5.1项目.我的项目目前在使用Apache 2.4.18的Ubuntu 16.04 LTS服务器上.我在机器上安装了用于SQL Server的Microsoft ODBC Linux驱动程序(版本13.0.0.0),并使用sqlcmd命令手动测试:

sqlcmd -S DatabaseIPAddress -U DatabaseUsername
Run Code Online (Sandbox Code Playgroud)

一切都很好.我可以登录数据库没问题.然而,当我使用php artisan迁移我的数据库时,它不起作用.我收到错误:

  [PDOException]
  could not find driver
Run Code Online (Sandbox Code Playgroud)

我已将此作为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'   => '',
],
Run Code Online (Sandbox Code Playgroud)

数据库登录信息保存在.env文件中,SQL Server设置为默认值:

'default' => env('DB_CONNECTION', 'sqlsrv'),
Run Code Online (Sandbox Code Playgroud)

对于可能发生的事情有任何帮助吗?我在互联网上阅读了很多帖子(这里这里).人们对不同类型的数据库有类似的问题.他们不得不改变他们的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
Run Code Online (Sandbox Code Playgroud)

重新启动,测试,但无济于事.我一直在这个墙上砸了一下墙.任何帮助将不胜感激.谢谢.

Sac*_*ith 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`
Run Code Online (Sandbox Code Playgroud)

将此行添加到php.ini

mssql.charset = "UTF-8"
Run Code Online (Sandbox Code Playgroud)

参考:Laracast讨论