Linux centos7 环境PHP5.5以上 连接 SqlServer dblib:host 连接sqlserver

时间:2024-03-31 14:36:24

下载 FreeTDS

# wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

# tar -zxvf freetds-patched.tar.gz

# cd freetds-0.95

 

需要注意的就是这里的--with-tdsver=7.3,这个非常重要,你需要根据你的数据库版本选择正确的配置项,由于现在大多是SQLserve2008所以需要选择7.3. 我自己的是2016选是7.4

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

http://www.freetds.org/userguide/choosingtdsprotocol.htm具体参考这个网站

 

http://www.freetds.org/files/stable/ 下载最新的

 

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

# make && make install

 

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

 

 

配置FreeTDS

# cd ../

# echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf

# ldconfig

 

编译的安装位子 和配置文件的安放

 

验证FreeTDS版本

这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。

首先看看版本信息

# /usr/local/freetds/bin/tsql -C

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

 

 

测试数据库是否联通

# /usr/local/freetds/bin/tsql -H 数据库服务器IP  -p 端口号 -U 用户名 -P 密码

/usr/local/freetds/bin/tsql -H 127.0.0.1 -p 1433 -U sa -P '123'

出现>1 说明ok 如果数 字上涨说明有问题

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

 

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

关于freetds/etc/freetds.conf配置项

 

很多其他帖子写了需要配置/usr/local/freetds/etc/freetds.conf,其实这个不需要配置。如果配置也可以,配置了PHP就可以调用这个配置项,否则需要PHP代码里指定数据库服务器信息即可。

 

另外需要注意的是/usr/local/freetds/etc/下的freetds.conf不同于前面/usr/local/freetds/lib/那个freetds.conf。

 

如果配置了这里,那么PHP页面就可以使用这里的配置,不然PHP页面指定一样可以。

 

 

 

其他都不用动,关于[egServer70]的名字也是随意的,这个就是给PHP调用的,和PHP代码里一致即可。

 

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

安装pdo

 

增加PHP扩展pdo的pdo_dblib

cd /usr/php-5.5.28/ext/pdo_dblib/

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/

 

根据自己的php安装目录来确定位子

 

make && make install

cp /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_dblib.so  /usr/local/php/extension/pdo_dblib.so(此处根据个人配置)

在php.ini中添加extension = "mssql.so"  或 extension ="pdo_dblib.so" (安装一个足够了)

 

ok了

就重启php 就可以读出数据

 

我使用的是yii2 所以这样配置 linux的

 

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

如果是win 的话  (需要安装不同的驱动)

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver

 

 

这样完成查询

Linux centos7 环境PHP5.5以上 连接 SqlServer 2016 dblib:host 连接sqlserver