Linux 环境下php5.6,如何正确安装微软Mssql驱动--详细教程

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

4make & 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查看,是否有正确配置了。

猜你喜欢

转载自blog.csdn.net/downer328/article/details/80546002