centOS7 安装 php7.2 并安装mssql扩展dblib

编译安装PHP7.2

链接里命令文本。注意文件位置就好。(亲测)

mssql 安装扩展dblib

编译安装FreeTDS

1.下载

下载过程有点慢,根据网速

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

2.解压编译

tar xvf freetds-patched.tar.gz

cd freetds-1.00.107

./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib --enable-shared --enable-static

make

make install

3.配置FreedTDS 文件:/usr/local/freetds/etc/freetds.conf​

[sql2005]
    host = **.***.**.*
    port = 1433
    tds version = 7.1
    client charset = GBK

4.测试连接

tsql -S 192.168.1.110 -U sa -P 密码

出现1>,说明连接成功,mssql命令测试一下

use master

go

select * from sysdatabases

go

可以看到所有数据库

1. 错误:

-bash: tsql : command not found

查看tsql

#目录下存在tsql
cd  /usr/local/freetds/bin

添加环境变量

vim /etc/profile

最下面添加

export PATH=$PATH:/usr/local/freetds/bin/

题外话 。非源码安装PHP。yum安装的  可用pecl, 安装pecl

yum install php-pear php-devel

配置PHP扩展

1.下载unixodbc-2.3.4  参考地址http://www.unixodbc.org/

ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.7.tar.gz

2.安装unixodbc

tar zxf unixODBC-2.3.7.tar.gz

cd unixODBC-2.3.7

 ./configure --with-php-config=/usr/local/php7/bin/php-config --with-pdo-odbc=unixODBC,/usr/local/unixODBC  

make && make install​

3.编译dblib 扩展

/usr/local/php/bin/phpize

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

make && make install​

4.配置unixODBC :

 配置文件 /usr/local/unixODBC/etc/odbcinst.ini

[TDS]
Descripton = ODBC of FreeTDS for MS SQL 2005
Driver = /usr/local/freetds/lib/libtdsodbc.so
FileUsage = 1
Trace = Yes
TraceFile = /logs/odbc.log
UsageCount = 1

配置文件 /usr/local/unixODBC/etc/odbc.ini​

[ODBC Data Sources]
sql2005dsn = My First Test DSN
[sql2005dsn]
Driver      = TDS
#Driver      = /usr/local/freetds/lib/libtdsodbc.so
Description = My First Test DSN
Trace       = No
Servername  = sql2005
Database    = 数据库名称

测试连接

/usr/local/unixODBC/bin/isql -v sql2005dsn 用户名 密码​

6.配置文件添加编译好的扩展​: pdo_dblib , PDO_ODBC

#查看是否扩展编译成功
/usr/local/php7/bin/php -m

PHP测试文件 :

$mssql = new PDO("dblib:version=8.0;charset=utf8;host=**.**.**.**;dbname=数据库名","用户名","密码!");

$sql = "select * from Account_Info where ai_id=1";

$res = $mssql->prepare($sql);
$res->execute();
while ($row = $res->fetch()) {
    print_r($row);
}

注意!注意!注意!

php多版本!启动的php!是否装dblib扩展

#php 扩展信息
/usr/local/php7/bin/php -m 

#启动php
/usr/local/php7/sbin/php-fpm

#删除yum安装的php
yum remove php-common

猜你喜欢

转载自blog.csdn.net/a114469/article/details/85260066