最近项目因需要,必须连SqlServer数据库,折腾了两天,弄好了。回头看,其实挺简单的。记录一下。
首先,因为是远程连接,所以 SqlServer的允许远程相关的设置必须开启,防火墙和服务器上相应的端口(如果有做限制)也必须开启。
设置好之后,就按以下步骤安装了
一、安装Freetds
#获取Freetds安装文件
#wget
#解压
#tar-zxvffreetds-patched.tar.gz
#cdfreetds-0.95
#配置
#./configure--prefix=/usr/local/freetds--with-tdsver=7.3--enable-msdblib
#安装
#make&&makeinstall
#查看版本信息
#/usr/local/freetds/bin/tsql-C
#测试是否能成功连接数据库
#/usr/local/freetds/bin/tsql-H数据库服务器IP-p端口号-U用户名-P密码
如果能成功连接到数据库,表示Freetds已经成功安装。
二、添加mssql扩展到PHP
#进入到扩展目录
#cd/usr/php-5.5.28/ext/mssql/
#编译mssql扩展
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config--with-mssql=/usr/local/freetds/
#make&&makeinstall
#修改PHP配置文件
#vi/usr/local/php/lib下的php.ini
添加extension="mssql.so"
#重启PHP
#killallphp-fpm
#/etc/init.d/php-fpm
phpinfo看一下,如果有mssql这一大项,表示扩展添加成功。
最后,测试一下能否读取数据
$conn=mssql_connect('连接名称','用户名','密码');
$connordie('connectfailed');
mssql_select_db('wing_test');
$rt=mssql_query('SELECTtop5*FROM表名',$conn);
while($row=mssql_fetch_array($rt,MSSQL_ASSOC))
{
var_dump($row);
}
exit;
至此,读取数据无误的话,Linux下PHP远程连接SqlServer完成。觉得太简略的可以看下这篇文章
PS:记得修改php.ini文件中sqlserver的字符集mssql.charset,否则容易出现乱码问题