centos安装mssql支持 下载FreeTds

下载FreeTds
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-0.91.102.tar.gz
编译安装freetds:
# tar -zxvf freetds-0.91.102.tar.gz
# cd freetds-0.91.102
# ./configure --prefix=/www/wdlinux/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
# make && make install
更正:./configure --prefix=/www/wdlinux/freetds --with-tdsver=7.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
8.0编译会自动变成5.0 奇怪。。。。。
运行./tsql -C 检查
下面这一步可有可无:
freetds/etc/freetds.conf
在A typical Microsoft server 下面添加我们要连接数据库的一些信息
[mssql_info]
host = 10.233.233.8
port = 1433
tds version = 7.1
测试链接
tsql -H ip -p 1433 -U sa -P pw
=================================================================================
安装php支持freetds:
因为之前没有把mssql的扩大编译进来。所以接下来还须要动态编译一下。我们这里哄骗phpize来实现。
找到php对应版本的安装包、解压的源包。 lnmp安装时的下载目录下的 :lanmp/php-5.3.29
进入php/ext/mssql
执行 /www/wdlinux/php/bin/phpize
./configure --with-php-config=/www/wdlinux/php/bin/php-config --with-mssql=/www/wdlinux/freetds
make
make install
将生成的module目录中的mssql.so提取复制到/www/wdlinux/php/lib/php/extensions/中
将php.ini中extension_dir="/www/wdlinux/php/lib/php/extensions/"
php.ini中添加一行extension=mssql.so;
千万记得要在php.ini中添加 mssql.charset="GBK"
否则会出现乱码 网上流传的其他方式测试 都不对(用自带mssql函数无法设置字符集,set names
不被支持,最后参考了adodb的代码,发现解决这个问题还得用com,或者用ative mssql driver,
这两东西在windows下可以,linux还是不大好使的。解决办法是编辑/usr/local/freetds/etc/freetds.conf
加上一行client charset = GBK, 设置成utf-8是不对的,因为mssql排序规则数据库默认设置是Chinese PRC,相当于gb2312,
另外php.ini 里面mssql.charset 是不需要设置的,其实说得很清楚:
; Specify client character set.
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS)
重启nginx.
版权声明
本文仅代表作者观点,不代表Csuper立场。
本文系作者授权百度百家发表,未经许可,不得转载。