• LinUX系统ThinkPHP5链接MsSQL数据库的pdo_dblib扩展


    LinUX(centOS6.8)系统ThinkPHP5链接MsSQL数据库的pdo_dblib扩展
    第一步 下载并安装freetds-current.tar.gz下载地址如下
    ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz
    1.1下载解压并进入该文件夹 (其实你也可以解压以后再上传到linux服务器)

    wget ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz
    tar zxvf freetds-current.tar.gz
    cd freetds-stable

    *解压以后的路径自己看 这个不一定对
    1.2执行./configure

    ./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib

    1.3执行make install

    make && make install

    第二步 安装PHP的安装pdo_dblib扩展
    2.1 进入你安装的php源文件目录,如果找不到就重新找到同版本的PHP文件解压以后上传到linux服务器 我拿这个路径/root/scr/php/ext/pdo_dblib举例

    cd  /root/scr/php/ext/pdo_dblib

    2.2 执行phpize 如果你的php不是安装在/usr/local路径下 你要修改为自己的php路径

    /usr/local/php/bin/phpize

    比如说我的php安装路径为/www/wdlinux/apache_php-5.6.21/ 就要执行/www/wdlinux/apache_php-5.6.21/bin/phpize

    2.3执行./configure 同上如果你的php不是安装在/usr/local路径下 你要修改为自己的php路径

    ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds

    比如说我的php安装路径为 /www/wdlinux/apache_php-5.6.21/那么./configure --with-php-config=/www/wdlinux/apache_php-5.6.21/bin/php-config --with-pdo-dblib=/usr/local/freetds

    2.4执行make install

    make && make install

    第三步 修改php.ini 同上如果你的php不是安装在/usr/local路径下 你要修改为自己的php路径
    比如说我的php安装路径为/www/wdlinux/apache_php-5.6.21/
    3.1 验证编译文件的路径
    进入/usr/local/php/lib/php/extensions里面查看里面或者下级目录有没有mssql.so和pdo_dblib.so文件
    如果存在 那么说明编译成功了
    3.2修改php.ini

    vi /usr/local/php/etc/php.ini

    并在最下方加入下面代码并保存 vi 修改 (先按 i 进入编辑模式,添加成功以后 按 Esc键推出编辑模式 再收入 :wq 后按回车保存)

    //extension="/usr/local/php/lib/php/extensions/mssql.so"
    extension="/usr/local/php/lib/php/extensions/pdo_dblib.so"

    不同的服务器可能代码有所不同 ,我的php安装和编译路径就不同

    //extension="/www/wdlinux/apache_php-5.6.21/lib/php/extensions/no-debug-non-zts-20131226/mssql.so"
    extension="/www/wdlinux/apache_php-5.6.21/lib/php/extensions/no-debug-non-zts-20131226/pdo_dblib.so"

    3.3 全部搞定后重启阿帕奇apache 当然你也可以输入reboot重启服务器

    service httpd restart

    3.4 如果你觉得不放心查看php探针文件 看看是否mssql 和 pdo_dblib 安装成功


    第四步 下载附件并复制数据库驱动扩展文件到ThinkPHP的文件中
    文件放到主程序下 /thinkphp/library/think/db 下方
    文件有两个 分别放到 builder和connector文件夹下 两个问题同名 都是Dblib.php 但是不能搞混 切记
    第五步 配置database.php文件

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

    下载扩展

  • 相关阅读:
    学习日记13、ajax同时提交from表单和多个参数
    学习日记12、list集合中根据某个字段进行去重复操作
    学习笔记11 EF查询相当于sql 中的 where in
    学习日记10、easyui编辑器combobox绑定数据的两种方式
    学习日记9、easyui控件两次请求服务器端问题
    学习日记8、根据身份证号获取生日和性别
    学习日记7、mvc +easyui datagrid excel上传
    学习日记6、easyui datagrid 新增一行,编辑行,结束编辑和删除行操作记录
    学习日记5、easyui datetimebox 和combobox设置默认值
    mac下设置redis开机自启
  • 原文地址:https://www.cnblogs.com/houdj/p/8855427.html
Copyright © 2020-2023  润新知