linux版本:64位CentOS 6.8

Nginx版本:1.12.0

php版本:7.1.5

Sqlserver版本:2008

1.首先需要编译安装FreeTDS 官网:http://www.freetds.org/software.html
注意根据你SQL Server版本来选择,我的是2008所以填写7.3, --with-tdsver=7.3 参考链接 http://www.freetds.org/userguide/choosingtdsprotocol.htm


    # wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
    # tar -zxvf freetds-patched.tar.gz
    # cd freetds-1.00.83  #解压以后的路径自己看,这个不一定对
    # ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib  
    # make && make install


2.验证FreeTDS版本,这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。
首先看看版本信息


    # /usr/local/freetds/bin/tsql -C


测试数据库是否联通


    # /usr/local/freetds/bin/tsql -H 数据库服务器IP  -p 端口号 -U 用户名 -P 密码  ##端口号一般是1433

3.安装PHP的安装pdo_dblib扩展
http://php.net/downloads.php
上php官网下载对应php版本的源码包找到里面的扩展来安装 我的是7.1.5所以我下载的是7.1的版本
linux下用phpize给PHP动态添加扩展
phpize不同服务器位置可能不一样,你可以通过whereis phpize查找位置,或者 find / -name 'phpize'查询位置
执行./configure 如果你的php不是安装在/usr/local路径下 你要修改为自己的php路径


    #cd php-7.1.15/ext/pdo_dblib
    # /usr/local/php/bin/phpize
    # ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
    # make && make install


4.在php.ini配置文件中增加扩展 .so
同上,如果php配置文件不在这里,你可以通过whereis php.ini查找未知,或者 find / -name 'php.ini'查询位置


    #vim /usr/local/php/etc/php.ini
    ##在php配置文件里添加一行
    extension=pdo_dblib.so


5.最后重启php-fpm,可以通过phpinfo()方法查看pdo_dblib扩展是否安装成功


# service php-fpm restart


6.下载附件里面的php类库,配置database.php文件


dblib驱动类库下载:https://fores.cc/usr/uploads/2018/03/1252872861.zip
下载链接2: https://pan.baidu.com/s/1CwYXcRs8F2_hs7lNoaN2Nw 密码: ig3w
下载附件并复制数据库驱动扩展文件到ThinkPHP的文件中
文件放到主程序下 /thinkphp/library/think/db 下方

修改database.php文件里的 type 为 dblib
return [
    // 数据库类型
    'type'            => 'dblib',
    // 服务器地址
    'hostname'        => '',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => '',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '1433',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];