Linux系统下ThinkPHP5链接MsSQL

天大地大妈咪最大 提交于 2019-12-21 15:48:19

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

案例

CentOS6.8系统ThinkPHP5链接MsSQL数据库。

分析

ThinkPHP5提供了Mysql、Pgsql、Sqlite和Sqlsrv四种数据库驱动。Window系统下有现成的php_sqlsrv.dll扩展可用,但Linux系统中没有(本人没有找到)。

尝试1未成功,写来以备其它用途

安装freetds

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-*
./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static
make && make install

安装mssql

wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
tar -zxvf php-5.6.22.tar.gz
cd php-*/ext/mssql
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds
make && make install 

修改php.ini,添加如下配置(路径请根据环境不同而定)

extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so"

修改ThinkPHP5配置文件database.php

// 数据库类型
'type'           => 'sqlsrv',
// 服务器地址
'hostname'       => '192.168.1.210',
// 数据库名
'database'       => 'dbname',
// 用户名
'username'       => 'sa',
// 密码
'password'       => '123456',
// 端口
'hostport'       => '1433',

测试

这种方式在ThinkPHP中是行不通的,在其它应用环境可以。

尝试2成功

安装freetds

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-*
./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static
make && make install

安装pdo_dblib

wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
tar -zxvf php-5.6.22.tar.gz
cd php-*/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 

修改php.ini,添加如下配置(路径请根据环境不同而定)

extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/pdo_dblib.so"

修改ThinkPHP5配置文件database.php

// 数据库类型
'type'           => 'dblib',
// 服务器地址
'hostname'       => '192.168.1.210',
// 数据库名
'database'       => 'dbname',
// 用户名
'username'       => 'sa',
// 密码
'password'       => '123456',
// 端口
'hostport'       => '1433',

下载ThinkPHP数据库驱动Dblib文件

将文件拷贝到 thinkphp/library/think/db 目录。

测试

成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!