linux 环境 Laravel 连接 MS Sql
linux 环境 Laravel 连接 MS Sql
1、安装freetds
- 下载源码并解压
cd /
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz
tar zxvf freetds-stable.tgz
cd freetds-*.*
./configure --prefix=/usr/local/freetds
gmake
gmake install
完成后,路径文件/usr/local/freetds
测试连接 /usr/local/bin/tsql -H 192.0.0.1 -p 3433 -U sa -P test
2、配置freetds.conf
增加阿里云数据库配置:
3、php-config目录和phpize目录
查找whereis php-config 找到:/usr/bin/php-config
查找whereis phpize 找到:/usr/bin/phpize
4、编译安装mssql扩展
以php-5.6为例,用到的路径见 3所示
cd /
wget http://cn2.php.net/distributions/php-5.6.40.tar.gz
tar -zxvf php-5.6.40.tar.gz
cd /php-5.6.40/ext/mssql
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-mssql=/usr/local/freetds
make && make install
编译完成可以到 /usr/lib64/php/modules 目录下看看是否生成文件(mssql.so)
在/etc/php.d目录下新建mssql.ini 文件,输入以下内容
; Enable mssql extension module
extension=mssql.so
引用扩展后,重启web服务,通过phpinfo查看扩展mssql是否开启成功
这样PHP就能加载SQL Server驱动了。使用如下代码测试PHP连接SQL Server。
4.1、连接测试
Route::get('/sql', function () {
$serverName='ip:3433';
$conn=mssql_connect($serverName,'sa','23$');
if($conn){
return '连接成功';
}else{
return '连接失败';
}
});
5、编译pdo_dblib.so扩展适配Laravel
5.1、编译pdo_dblib.so
cd /php-5.6.40/ext/pdo_dblib
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-pdo_dblib=/usr/local/freetds
make && make install
到/etc/php.d下新建pdo_dblib.ini,输入以下内容
; Enable pdo_dblib extension module
extension=pdo_dblib.so
用phpinfo()查看配置是否成功
5.2、编辑laravel的sqlsrv 配置
再编辑Laravel的app/config/database.php文件,将sqlsrv区域改为一下形式
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'sql-server-2000',
'database' => 'msdb',
'username' => 'sa',
'password' => 'test',
'prefix' => '',
),
这样Laravel也可以连接SQL Server了。
若无法连接可以执行composer update 看看报了啥错误
6、重启linux 部分配置
service php-fpm restart
service nginx restart
7、参考,感谢作者
https://blog.****.net/wobushinix/article/details/77722455 主要mssql
https://blog.****.net/phpwww/article/details/40421807
https://blog.****.net/skykingf/article/details/44595073 有laravel连接sql说明
https://blog.****.net/weixin_34314962/article/details/93155138 编译pdo_dblib
https://www.jianshu.com/p/c87443bd1e39 安装odbc和freetds
8、应用环境
阿里云
ECS 系统centos 7.3 x64
php 5.6 php-fpm5.6 laravel 5.4
系统 RDS SQL Server 2016 WEB