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)
重新启动,测试,但无济于事.我一直在这个墙上砸了一下墙.任何帮助将不胜感激.谢谢.
按照以下步骤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讨论
| 归档时间: |
|
| 查看次数: |
1361 次 |
| 最近记录: |