SQLServer数据库之Linux环境PHP5.5以上连接SqlServer2008
小标 2019-03-20 来源 : 阅读 1061 评论 0

摘要:本文主要向大家介绍了SQLServer数据库之Linux环境PHP5.5以上连接SqlServer2008,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

本文主要向大家介绍了SQLServer数据库之Linux环境PHP5.5以上连接SqlServer2008,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

SQLServer数据库之Linux环境PHP5.5以上连接SqlServer2008

linux版本:64位CentOS 6.4

Nginx版本:nginx1.8.0

php版本:php5.5.28

Sqlserver:2008

关于Linux环境安装Nginx+PHP参考《Linux环境Nginx安装与调试以及PHP安装 》即可。一般来说,PHP+mysql是最经典的组合,跑在Linux环境是非常好的,如果是PHP+Sqlserver是跑在windows环境下的。

今天需要Linux环境下PHP调用Sqlserver,用了一天的时间,终于把这个问题彻底研究清楚,网上其他类似文章我大都看了,其实有的是因为太久远不适用,有的有错误,还有的有几个关键问题没有说清楚,看此文其他可以忽略了,说真的踩坑真的很累,也没必要,照着这篇来做就是,所以本文才号称是全网最经典无错版,其实这么说主要是希望大家节省时间。

1.首先需要编译安装FreeTDS

说明:FreeTDS官网下载比较慢,可以从本人上传的这里一样很快下载://download.csdn.net/detail/21aspnet/8997397

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

需要注意的就是这里的--with-tdsver=7.1,这个非常重要,网上有的说是7.2,有的说是8.0,关于这个的问题可以看文末参考帖子

# ./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib
# make && make install

安装好会看到这样的信息:


配置FreeTDS

# cd ../

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

验证FreeTDS

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

首先看看版本信息

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


如果前面配置的时候--with-tdsver=7.1如果写的是7.2和8.0或者其他都会这里TDS版本是5.0,原因见后面的参考信息中的帖子。

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

或者直接

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


关于freetds/etc/freetds.conf  下面可以参考线上可以不配置

重要说明:很多其他帖子写了需要配置/usr/local/freetds/etc/freetds.conf,另外需要注意的是etc下的freetds.conf不同于前面那个freetds.conf。

其实默认已经生成好了etc下的freetds.conf,其实这是多余的,不过配置了也没有问题。 

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

默认是这样的:


修改[egServer70]为这样:


1

2

3

4

[egServer70]

    host = 192.168.1.235 这个是数据库服务器IP

    port = 1433

    tds version = 7.1

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

3.添加PHP扩展mssql和pdo的pdo_dblib

说明:这2种扩展都可以达到相同的目的,选其一即可。

(1).增加PHP扩展mssql 

# cd /usr/php-5.5.28/ext/mssql/

linux下用phpize给PHP动态添加扩展
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
# make && make install



(2).增加PHP扩展pdo的pdo_dblib  线上部署使用
# cd /usr/php-5.5.28/ext/pdo_dblib/ 此目录是php源文件版本文件目录下比如 lnmp/src/phpxxx/ext/pdo_dblib/ 
 下面用phpize给PHP动态添加扩展
# [root@xxx pdo_dblib]# /usr/local/php/bin/phpize 执行,此目录是php生产环境下安装的具体目录

Configuring for:

PHP Api Version:         20121113

Zend Module Api No:      20121212

Zend Extension Api No:   220121212

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

# make && make install 

执行完成后会有一个提示目录,这个下面就是模块so目录

 xxx/php/lib/php/extensions/no-debug-non-zts-20121212/ 

(3).在php.ini配置文件中增加.so

# cd /usr/local/php/etc下的php.ini

增加:

?

1

2

extension = "mssql.so"

extension ="pdo_dblib.so"

;   extension=/path/to/extension/msql.so

extension=xxx/php/lib/php/extensions/no-debug-non-zts-20121212/pdo_dblib.so  


如果你只需要上述2种扩展之一,自然只要新增其中一个的.so扩展到php.ini即可。

(4).重启PHP FastCGI# killall php-fpm
# /etc/init.d/php-fpm

如果没有正确生成扩展是不能重启php-fpm的。

这时候在phpinfo里就可以看到扩展添加成功的信息了。


本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程