lnmpa配置Freedts远程连接sql server的教程

29 篇文章 2 订阅
25 篇文章 1 订阅

lnmpa远程连接mssql数据库需要两步:

1、安装linux的mssql软件开发包,如FreeTDS;

2、安装PHP的mssql扩展。

1、下载并安装FreeTDS:

#下载FreesTDS,可进入ftp://ftp.freetds.org/pub/freetds/stable/下载最新版本,这里以freetds-1.00.27为例

$ wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.1.tar.gz

#解压

$ tar -zxvf freetds-1.1.tar.gz

#进入解压的目录

$ cd freetds-1.1

#配置

$ ./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=7.4

#编译安装

make && make install

留意tdsver的版本号:

关于版本号的更多信息可以在这里看到http://www.freetds.org/userguide/choosingtdsprotocol.htm

配置参数说明:

--prefix=/usr/local/freetds   安装的目录

--enable-msdblib  允许Microsoft的函数库

--with-tdsver=7.4  FressTDS版本号

检查是否安装成功:

#进入安装的目录

$cd /usr/local/freetds/bin

#显示版本信息

./tsql -C

如果显示如下内容,则表示已经安装成功:

尝试连接MSSQL

#进入安装目录

$ cd /usr/local/freetds/bin

#连接

$ ./tsql -H 192.168.0.254 -p 1433 -U sa -P 123456

#出现1>,说明连接成功,mssql命令测试一下

use master
go
select * from sysdatabases
go

#可以看到所有数据库

如果显示如下内容表示连接成功:

locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> 
# 按 ctrl + C 退出

2、安装PHP拓展,可去PHP官网下载完成包,这里以PHP-5.6.22为例(每次升级php都要重新编译拓展)(非必须)

#进入PHP扩展源码目录

cd php-5.6.22/ext/mssql

#生成编译配置文件

/usr/local/php/bin/phpize

#配置

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

#编译

make && make install

如果编译完成后出现如下内容,则表示扩展安装成功

Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

在/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目录里生成了mssql.so文件,接着编辑php.ini,添加扩展库支持

#php.ini所有目录

/usr/local/php/etc/php.ini

# 启用如下,如无则添加

extension = "mssql.so"

#重启lnmpa

$ lnmpa restart

完成后,可以使用$con = mssql_connect('host:1433','user','password') or die("SQL SERVER 数据库连接失败!");了。

3、安装PHP扩展pdo_dblib库(建议)

# 进入pdo_dblib模块源码目录

#先解压tar -xjf php-7.2.34.tar.bz2

$ cd php-7.2.34/ext/pdo_dblib

# 生成编译配置文件

$ /usr/local/php/bin/phpize

# 配置

$ ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo_dblib=/usr/local/freetds

#编译安装

$ make && make install

安装完成后会在对应目录里生成pdo_dblib.so文件(如/usr/local/php/lib/php/extensions/no-debug-zts-20170718),编辑php.ini,并添加extension = "pdo_dblib.so",最后重启lnmpa。

完成后可以使用$con = new PDO("dblib:host=myHost;dbname=myDB","myUserName","myPassword");了。

PHP读取MSSQL可能会出现乱码情况,可以在 php.ini 中指定mssql语言集

# 编辑 php.ini
$ vi /usr/local/php/etc/php.ini
# 搜索关键词
$ /mssql.charset
# 按n搜索下一项
# 在如下行下面再添加一行utf-8或GBK
;mssql.charset = "ISO-8859-1"
mssql.charset = "utf8"
#是utf8还是gbk,要根据PHP程序的文件编码决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值