Centos+PHP5.3.6+Freetds0.9.1安装并配制mssql(2008)支持

一 .安装freetds,目前稳定版为0.9.1

官方下载地址:http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

 

#wget  http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

#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);  
?>  

 

 

posted @ 2012-04-14 23:28  亦风  阅读(1693)  评论(0)    收藏  举报