windows系统和linux系统上安装扩展连接SQL SERVER数据库

最近项目增加需求要访问SQL SERVER数据库进行数据操作,过程有一些曲折,所以写下来让需要的朋友看到

线上服务器是红帽 linux4.4 PHP5.6 

本地是win10系统 PHP5.6

 先开始本地windows搭建

首先说一下,有的人可能在搜索查资料的时候,发现很多说的是用mssql的,所以注明一下,mssql扩展在PHP5.2版本以上就已经废弃了,不再使用,除非你使用的是PHP5.2以下版本,可以去搜一下具体怎么配置,5.2以上版本都可以使用以下方式连接sqlserver数据库。

查看自己的PHP版本系统是x86还是x64(不是你电脑系统),如下图

x86

如果是x86就去微软下载对应版本的插件 点击跳转 不同的PHP版本看下图(x64在下面)

比如我的是PHP5.6就去下载3.2版本

点击红色download下载,选择SQLSRV32.EXE

下载完成以后会得到一个exe文件

打开之后点击yes选择一个目录,程序会把相应的文件释放到选择的目录

选择这两个文件(因为我是5.6,其他版本自己选择)

php_pdo_sqlsrv_56_ts.dll
php_sqlsrv_56_ts.dll

找到你本地的PHP安装目录,比如我的php5.6.38,点击进去选择ext文件夹

把刚才的两个文件复制进去

接下来打开PHP.ini(找不到请百度)

搜索extension,在下图位置加入下面两句,然后重启环境

extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll

重启过后打开phpinfo查看是否安装成功,出现这两个就是安装成功了

如果出现下图,说明你没安装 odbc 需要安装的请去微软官网 点击下载

(我已经安装过了,所以这张图是借别人的)

然后就请自行在项目中测试了

x64

操作方法与上方一致,但是PHP7以下不支持x64,(PHP7以上自行测试,下载链接在上面)所以就需要用到民间版本的x64

我已经上传了点击下载

windows版本结束

服务器Linux搭建

如果你的PHP版本是7.0及以上,可以使用微软官方提供的方案 点击跳转

因为楼主的服务器版本是5.6版本,所以下面提供的方法也是5.6,如不适用请关闭

首先下载安装freetds,如果不能下载,我这边已经上传了点击下载

下载
wget ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz
解压
tar zxvf freetds-current.tar.gz
到解压目录
cd freetds-stable
执行
./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib
再执行
make && make install
验证是否安装成功
/usr/local/freetds/bin/tsql -C

解释:–prefix为设置FreeTDS的安装目录,–with-tdsver是设置TDS版本, –enable-msdblib为是否允许Microsoft数据库函数库

如果你的PHP是编译安装的不需要重新下载PHP,直接去安装目录,我的目录就是/www/server/php/56/src/ext

在这个目录下面找到 pdo_dblib目录,进去

开始安装pdo_dblib扩展

移动目录
cd  /www/server/php/56/src/ext/pdo_dblib
找到你的phpize(下方是我的)
/www/server/php/56/bin/phpize
执行(找到你的php-config目录,在下方更改)
./configure --with-php-config=/www/server/php/56/bin/php-config --with-pdo-dblib=/usr/local/freetds
再执行
make && make install
安装完成,然后配置php.ini,搜索extension,然后加入下面这句,重启(service php-fpm restart)你的环境,如线上重启比较危险,可以选择重载配置(service php-fpm reload)
extension=/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/pdo_dblib.so

出现pdo_dblib,安装成功

楼主用的tinkphp5.1开发的,下面放上数据库连接,需要用到tp5.1db类库文件 点击下载

// 数据库类型
'type'           => 'dblib',
// 服务器地址
'hostname'       => '服务器ip',
// 数据库名
'database'       => 'xx',
// 用户名
'username'       => 'xx',
// 密码
'password'       => 'xx',
// 端口
'hostport'       => '3306',

如果不是编译安装的,请往下看

需要先下载PHP 点击跳转 ,注意你下载的PHP版本,要和服务器PHP版本对应,下载好了之后解压,重复上方操作    

开始安装pdo_dblib扩展(请到上面查看)

下面这种不适合ThinkPHP(CI测试可以支持)

跟上面一样,首先下载安装freetds,如果不能下载,我这边已经上传了点击下载

下载
wget ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz
解压
tar zxvf freetds-current.tar.gz
到解压目录
cd freetds-stable
执行
./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib
再执行
make && make install
验证是否安装成功
/usr/local/freetds/bin/tsql -C

然后安装mssql

下载PHP(如果是编译安装,前面两步不用看,直接到进入目录)
wget http://cn2.php.net/distributions/php-5.6.38.tar.gz
解压(解压到哪里就进入那里,如/root/php-5.6.38)
tar -zxvf php-5.6.38.tar.gz
进入目录(如果是编译安装,不需要下载PHP,直接执行下方命令,不是编译,就cd  /root/php-5.6.38/src/ext/mssql)
cd  /www/server/php/56/src/ext/mssql
找到你的phpize(下方是我的)
/www/server/php/56/bin/phpize
执行
./configure --with-php-config=/www/server/php/56/bin/php-config --with-mssql=/usr/local/freetds
再执行
make && make install 
安装完成,然后配置php.ini,搜索extension,然后加入下面这句,重启(service php-fpm restart)你的环境,如线上重启比较危险,可以选择重载配置(service php-fpm reload)
extension=/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/mssql.so

教程到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值