Linux 环境下,如何正确安装微软Mssql驱动
近日,由于公司业务的需要,需要用到PHP连接一个客户的Mssql服务器。于是,开始一番折腾之路。Baidu与Google之后,发现,网上说的各种方法,要嘛只说一半,要嘛就简简单单的罗列一下,有的根体没有可操作性。于是乎,自己结合网上的一些方法,开始动手在服务器上安装Mssql的驱动。
服务器环境
CentOS 6.9
PHP 5.6.36 基本安装
前期准备
需要 php5.6.36的安装包
开始动手
1. 第一步:
首先登陆服务器,最好有root权限。下载并安装freetds。这个是Linux与Mysql进行 数据交互的一个中间件。操作如下:
1、wget ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz //下载的速度可能会比较慢,可以用本地下载下来后,再上传到服务器上
2、tar -zxvf freetds-current.tar.gz
3、cd freetds-dev.1.00.365 //这边你有可能会下载到最新版本
4、./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib //编译前的配置, --prefix=/usr/local/freetds 就是要把你freetds安装到哪个目录下
5、make & make install //至此,freetds 的中间件安装成功
2. 第二步:
安装Php的PDO_dblib
进入到你要安装的php源文件目录,如果找不到,请下载后上传到服务器上。我的路径是/data/php5.6.36 以我的路径为例吧。
1、 cd /data/php5.6.36/ext/pdo_dblib
2、 /data/php/bin/phpize //请根据你的php安装目录进行更改 这个里会生成一个源文件的配置包 phpize是一条命令,用来安装php扩展的。
3、./configure --with-php-config=/data/php/bin/php-config --with-pdo-dblib=/usr/local/freetds //这里执行安装前的配置。 将pdo-dblib与freetds中间件进行关联,请注意更改至你服务器上的php目录。
例如 我的php安装路径为 /data/php/那么./configure –with-php-config=/data/php/bin/php-config –with-pdo-dblib=/usr/local/freetds
4、make & make install
这边需要注意一个地方,如果出现编译不成功可以尝试执行:make clean
还有问题的话可以参考pdo_dblib编译错误解决办法
到这里,你可以在你php安装目录下找到pdo_dblib.so这个扩展。此扩展的路径,以你的PHP安装目录为准。比如我的安装路径就是/data/php/lib/php/extensions下。如果没找到,就说明不成功。把上面的步骤再走一遍。
3.第三步:
安装mssql驱动,这一步必不可少。也是在php的安装包里面。步骤与安装pdo_dblib一样。
4.第四步:
如果安装完pdo_dblib和mssql ,可以在 php的扩展目录下找到 pdo_dblib.so和mssql.so两个文件。现在需要更改php.ini配置。将目录切换至:
1、cd /data/php/etc
2、vim php.ini
在php.ini文件下添加下面这两句
extension=pdo_dblib.so
extension=mssql.so
5.第五步:
更改freetds的配置文件。freetds的配置文件,在刚才你安装的目录下。
操作如下:
1、cd /usr/local/freetds/etc //切换至freetds的目录
2、vim freetds.conf
更改mssql服务器配置。这里就是填mssql服务器的一些配置信息,举例如下
host = 127.0.0.1 这里填mssql的服务器IP
port = 1433 端口号
tds version = 8.0 tds版本号
client chaeset = UTF-8 客户端编码
6.重启服务器
最后一步,重启php-fpm
service php-fpm restart
现在,你可以通过phpinfo查看,是否有正确配置了。