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。