说明:
Linux服务器系统:CentOS 5.5
Web环境:LAMP或者LNMP
Windows服务器系统:Windows Server 2003
Windows服务器IP地址:192.168.21.134
数据库环境:SQL Server 2000数据库
数据库账号:sa
数据库密码:123456
实现目的:Linux服务器中的php程序能够连接到Windows服务器中的SQL Server 2000数据库
具体步骤:
一、在Linux服务器中安装freetds
1、安装编译工具及驱动程序
yum install make apr* autoconf automake gcc gcc-c++ wget
2、安装unixODBC驱动程序
yum -y install unixODBC unixODBC-devel
3、安装freetds
cd /usr/local/src
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz #下载
gunzip freetds-stable.tgz #解压
tar -xvf freetds-stable.tar
cd freetds-0.91
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --with-unixodbc=/usr --enable-msdblib #配置
make #编译
make install #安装
4、配置freetds
cp /usr/local/freetds/etc/freetds.conf /usr/local/freetds/etc/freetds.confbak #备份原有文件
vi /usr/local/freetds/etc/freetds.conf #在最后位置修改编辑以下内容
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链
[192.168.21.134]
host = 192.168.21.134 #SQL Server 2000服务器地址
port = 1433 #SQL Server 2000数据库端口
tds version = 8.0 #8.0代表数据库版本为SQL Server 2000
client charset = UTF-8 #设置字符集
5、测试freetds
/usr/local/freetds/bin/tsql -S 192.168.21.134 -U sa #测试,提示输入数据库密码,出现下面界面,配置成功
cd /usr/local/freetds/bin
./tsql -S 192.168.21.134 -p 1433 -U sa -P 123456 -D master #测试,出现下面界面,配置成功
二、配置Linux php连接SQL Server 2000数据库
1、php是用yum命令在线安装
yum install php-mssql #安装php-mssql扩展,如果提示没有此安装包,请先配置第三方yum源
wget http://www.atomicorp.com/installers/atomic #下载
sh ./atomic #安装
yum install php-mssql #再次执行
2、php是用源码编译安装
cd /usr/local/src/php-5.3.15/ext/mssql #进入php源码包的ext下mssql目录
/usr/local/php5/bin/phpize 我的是/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mssql=/usr/local/freetds #配置
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds #配置
注意:--with-mssql=/usr/local/freetds #是指freetds的安装路径
make #编译
make install #安装
vi /usr/local/php5/etc/php.ini #编辑,在最后位置添加下面一行
extension = "mssql.so" 我的是如下配置:
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mssql.so
:wq! #保存退出
3、重启LAMP或者LNMP
service httpd restart #重启apache
service php-fpm restart #重启php-fpm
三、测试php连接SQL Server 2000数据库
进入php程序目录,新建一个测试文件
cd /usr/local/nginx/html #请改为自己的网站目录
vi sql.php #添加以下内容
$mssql=mssql_connect("192.168.21.134","sa","123456");
if ($mssql) {
echo "Connent Mssql Succeed";
}
else {
echo "connent Mssql Error!";
}
?>
:wq! #保存退出
注意:这里的192.168.21.134必须要和/usr/local/freetds/etc/freetds.conf中的[192.168.21.134]完全一样
在浏览器中打开,出现下面的界面,连接成功
可以在新建一个文件
vi index.php
phpinfo();
?>
在浏览器中打开,能找到mssql,说明配置成功,如下图所示
1、安装freetds
wget http://mirrors.ibiblio.org/freetds/stable/freetds-stable.tgz
tar -zxvf freetds-stable.tgz
cd freetds-0.91/
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make
make install
vim /etc/ld.so.conf
ldconfig
2、测试连接
tsql -H IP地址 -p 1433 -U 用户名 -P 密码
//tsql在/usr/local/freetds/目录下
如果连接出错,可以尝试修改vi freetds.conf
[global]
# TDS protocol version
tds version = 7.1
3、添加php扩展mssql
cd php_source/ext/mssql
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/lib/freetds
make
make install
4、添加php扩展pdo_dblib
cd php_source/ext/pdo_dblib/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo_dblib=/usr/local/lib/freetds
make
make install
5、修改php.ini 文件
添加两行
extension=mssql.so
extension=pdo_dblib.so
6、重启php
7、测试php连接mssql是否成功
php代码
8、返回失败则按照提示操作
至此,Linux下php连接SQL Server 2000数据库配置完成
try {
$hostname = "192.168.20.103";
$port = 1433;
$dbname = "hahadbs";
$username = "sb";
$pw = "@haha@";
$dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
var_dump($dbh);
$sql = "SELECT NAME FROM ROLE";
$res = $dbh->prepare($sql);
$res->execute();
var_dump($res);
while($row = $res->fetch()){
print_r($row);
}