linux编译安装mssql客户端和配置php连接mssql

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

凡是连接数据库,必须安装客户端,我一般写博客都不写原理,但是后来发现回头看自己写的自己都看不懂,所以这章博客会多一点原理性的东西。


数据库的连接一般都是在客户端上完成的,MySQL也不例外,安装mysql时一般都会这么安装:

1
#yum install mysql mysql-server

上面的mysql就是安装的客户端,mysql-server就是服务端,不安装客户端(mysql)就没办法执行mysql连接命令:mysql -u user -p pass -h -P port 

而sqlserver同样需要客户端,下面讲的就是在linux下安装sqlserver 2008的客户端freetds


安装环境:

1
2
3
#centos6.8
#php5.6
#sqlserver2008


  1. 下载freetds,一般都会在官网下载,这个开源的想必没人会用盗版。


1
2
3
4
5
6
wget  ftp : //ftp .freetds.org /pub/freetds/stable/freetds-patched . tar .gz
#linux下载有点慢,可以在windows上下载,然后再上传至linux上。
tar  zxf freetds-patched. tar .gz
cd  freetds-1.00.27
. /configure  --prefix= /usr/local/freetds  --with-tdsver=7.3 -- enable -msdblib
make  &&  make  install


2.导入ldconfig

1
2
  echo  "/usr/local/freetds/lib/"  /etc/ld .so.conf.d /freetds .conf
  ldconfig


3.查看安装的版本: 

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

4.测试能否连接sqlserver:

1
/usr/local/freetds/bin/tsql  -H 10.10.10.10 -p 1433 -U sa -P password

5.添加PHP扩展mssql和pdo_dblib,这是php两种连接mssql的方式,只安装mssql也可以。

注意:一般安装php会选择两种方式,一种是编译安装,一种是yum安装。下面分别来讲解两种方式的安装方式:

1)yum安装的php

#很简单,直接yun安装mssql插件即可:

1
2
yum  install  php-pdo -y
yum  install  php-mssql -y

2)编译安装的php

1
#进入到php的安装包中,安装mssql插件
1
2
3
4
cd  /home/tools/php-5 .6.20 /ext/mssql/
/usr/local/php/bin/phpize 
. /configure  --with-php-config= /usr/local/php/bin/php-config  --with-mssql= /usr/local/freetds/ 
make  &&  make  install


1
2
3
4
5
#安装pdo_dblib
cd  /home/tools/php-5 .6.20 /ext/pdo_dblib/
/usr/local/php/bin/phpize
. /configure  --with-php-config= /usr/local/php/bin/php-config  --with-pdo-dblib= /usr/local/freetds/
make  &&  make  install

在php.ini中添加mssql和pdo_dblib:

1
2
3
4
5
6
7
mv  /usr/local/php/lib/php/extensions/no * /mssql  /usr/local/php/lib/php/extensions/
mv  /usr/local/php/lib/php/extensions/no * /pdo_dblib  /usr/local/php/lib/php/extensions/
#把前面安装的扩展插件生成的文件移动到extension目录下
vi  /usr/local/php/lib/php .ini
extension_dir =  "/usr/local/php/lib/php/extensions"
extension =  "mssql.so"  
extension =  "pdo_dblib.so"


3)重启php,看扩展插件有没有生效:

#编译一个php测试文件:

1
2
3
4
vi  /www/html/test .php
<?php
phpinfo();
?>

用浏览器打开上面的测试文件,会看到如下信息,代表成功安装:

http://ip/test.php

wKiom1kauemDpP72AAC6lkTfzxw811.jpg


6.测试mssql连接sqlserver2008:

#编辑一个测试文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vi  /www/html/connect_sql .php
<?php  
header( "Content-type: text/html; charset=utf-8" );    
$msdb=mssql_connect( "10.10.10.10:1433" , "sa" , "password" );  
if  (!$msdb) {  
     echo  "connect sqlserver error" ;  
     exit ;  
     }  
mssql_select_db( "test" ,$msdb);  
$result = mssql_query( "SELECT top 5 * FROM student" , $msdb);  
while ($row = mssql_fetch_array($result)) {  
  print_r($row);  
}  
mssql_free_result($result);  
?>

#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。


7.测试pdo_dblib连接sqlserver2008:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#创建一个测试文件
vi  /www/html/connect_db .php
<?php  
header( "Content-type: text/html; charset=utf-8" );  
   try {  
     $ hostname  "10.10.10.10" ;  
     $port = 1433;  
     $dbname =  "test" ;  
     $username =  "sa" ;  
     $pw =  "password" ;  
     $dbh = new PDO ( "dblib:host=$hostname:$port;dbname=$dbname" , "$username" , "$pw" );  
   } catch (PDOException $e) {  
     echo  "Failed to get DB handle: "  . $e->getMessage() .  "\n" ;  
     exit ;  
   }  
    
   $stmt = $dbh->prepare( "SELECT top 5 * FROM student" );  
   $stmt->execute();  
   while  ($row = $stmt->fetch()) {  
     print_r($row);  
   }  
   unset ($dbh);  unset ($stmt);  
   
?>

#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。


本文转自 王家东哥 51CTO博客,原文链接:http://blog.51cto.com/xiaodongge/1926312


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
61 0
|
10天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
28 0
|
10天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
10天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
35 0
|
10天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
3天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
13 0
|
4天前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
|
10天前
|
Java Linux 开发工具
linux jdk的安装
linux jdk的安装
16 0
|
7月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
81 0
|
7月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
107 0