Linux系统下ThinkPHP5连接MsSQL

案例

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

分析

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

尝试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中是行不通的,在其它应用环境能够。sql

尝试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 目录。thinkphp

测试

成功。数据库

相关文章
相关标签/搜索