一 .安装freetds,目前稳定版为0.9.1
#tar zxvf freetds-stable.tgz
#cd freetds-0.91/
# ./configure --prefix=/usr/local/freetds0.91 --enable-msdblib --with-tdsver=8.0 //目前最高好像只支持到7.1,但可写到8.0,可用 configure--help 查看
#make &&make install
修改配制文件
#vi /usr/local/freetds0.91/etc/freetds.conf
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
host = mssql.yourdomain.com
port = 1433
tds version = 8.0
client charset = UTF-8
执行:
#echo "/usr/local/freetds0.91/lib/" > /etc/ld.so.conf.d/freetds.conf
#ln -s /usr/local/freetds0.91/lib/libsybdb.so.5.0.0 /usr/local/freetds0.91/lib/libsybdb.so.4
#/sbin/ldconfig
二,安装配制php mssql支持
#cd /data/software/php5.3.6/ext/mssql
#/usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds0.91/
#make && make install //若编译提示 php_mssql.h: “typedef‘LPBYTE’重定义” 请注释或删除此文件中的该行再试.
配置 php.ini
# vi /usr/local/php/lib/php.ini
在[mssql]下面加入:
extension = "mssql.so"
重启PHP FastCGI 即可. phpinfo中可看到:
PHP测试代码:
<?php
header("Content-type: text/html; charset=utf-8");
$msdb=mssql_connect("mssql.yourdomain.com:1433","username","password");
if (!$msdb) {
echo "connect sqlserver error";
exit;
}
mssql_select_db("database_name",$msdb);
$result = mssql_query("SELECT top 5 * FROM table", $msdb);
while($row = mssql_fetch_array($result)) {
var_dump($row);
}
mssql_free_result($result);
?>