linux php 访问sql server设置

1.安装freeTDS

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz

1.1、进入到你下载的目录然后解压。tar -zxvf freetds-stable.tgz

1.2、cd freetds-0.91 (我目前下载的版本是0.91)

1.3、编译: ./configure  --prefix=/usr/local/freetds  --with-tdsver=7.1  --enable-msdblib

主要参数说明:--with-tdsver设置FreeTDS的版本,我这里设置了7.1是为了能连接SQL2005

                    --enable-msdblib是是否允许Microsoft数据库函数库,这里为允许;

1.4、make

1.5、make install

2、安装好之后,进行一下测试:

2.1、cd /usr/local/freetds/bin

2.2、./tsql -C

2.3、如果安装成功,则显示:

 

2.mssql扩展打开

我安装的php中自带了mssql,在modules文件中有mssql.so

只需要在php.ini中最后一行增加 extension=mssql.so;

如果没有自带mssql,则可以独立安装:

根据当前的php版本下载源码包,假设当前是php-5.3.17

3.1、解压php-5.3.17.tar.gz的源包。

3.2、进入 ext/mssql/下

3.3、执行/usr/local/php/bin/phpize

3.4、./configure --with-php-config=/usr/local/bin/php-config --with-mssql=/usr/local/freetds

3.5、make

3.6、make install

3.7、生成module目录中提取mssql.so复制到/usr/local/php/lib/php/extensions/中

3.8、.配置php.ini中extension_dir='/usr/local/php/lib/php/extensions/'

3.9、添加一行extension=mssql.so;

3.10、重启服务器

 

报错解决:mssql在make时,报错

cannot find freeTDS in known installation directories 及 spprintf.h:40: note: expected ‘char **’ but argument is of type ‘unsigned char

在这里需要修改freetds源码,修改文件 freetds-0.91/include/sqlfront.h
找到 typedef       BYTE *  LPBYTE;  将其注释掉
/* typedef       BYTE *  LPBYTE; */

删除掉/usr/local/freetds后,重新编译安装 freetds 后再次编译mssql

 

posted @ 2015-03-24 22:47  悲惨的大爷  阅读(1683)  评论(0编辑  收藏  举报