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

简介:

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


数据库的连接一般都是在客户端上完成的,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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
631 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
9月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
1213 0
|
11月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
516 5
|
11月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
安全 关系型数据库 MySQL
提升PHP安全:8个必须修改的PHP默认配置
提升PHP安全:8个必须修改的PHP默认配置
314 0
|
SQL 监控 安全
|
Web App开发 安全 PHP