[lnmp配置php.ini]LNMP配置PHP支持连接MSSQL的例子

时间:2020-10-12  来源:Mssql  阅读:

安装 FreeTDS

FreeTDS 是 Linux/Unix 下一组软件开发包,用于实现微软 SQL Server 和 Sybase 的 Tabular DataStream protocol 协议。利用 FreeTDS 可在 Linux/Unix 下连接 SQL Server 和 Sybase 数据库

可前往FreeTDS官网看详细介绍。

下载并安装 FreeTDS

进入Linux服务器,通过如下命令直接下载到服务器进行安装,以 freetds-0.95.92.tar.gz 为例。

# 下载 freetds,可下载最新 ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
$ wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-0.95.92.tar.gz

# 解压
$ tar -zxvf freetds-0.95.92.tar.gz

# 进入解压后的目录,注意版本号
$ cd freetds-0.95.92

# 查看当前支持的 tdsver 版本,选择对应支持的 MSSQL 版本
$ ./configure --help

# 重编译安装,注意 tdsver 版本
$ ./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=7.3
$ make && make install
注:MS官网的速度太慢,可直接进FTP下载文件包后上传到服务器进行安装。

整理注释

针对上述命令行中一些简单注释:

--prefix=/usr/local/freetds FreeTDS的默认安装目录 /usr/local/freetds
--enable-msdblib  允许 Microsoft 的函数库
--with-tdsver=7.3  指定TDS的协议版本,不填写则默认5.0版,7.3支持MSSQL2008。
TDS协议版本

先看官方文档 http://www.freetds.org/userguide/choosingtdsprotocol.htm

Microsoft SQL Server 2000    7.1 Include support for bigint (64 bit integers), variant and collation on all fields. Collation is not widely used.
Microsoft SQL Server 2005    7.2 Includes support for varchar(max), varbinary(max), xml datatypes and MARS[a].
Microsoft SQL Server 2008    7.3 Includes support for time, date, datetime2, datetimeoffset.
N/A                          8.0 FreeTDS will alias this version to 7.1 for backwards compatibility reasons, but this should be avoided due to future compatibility concerns. See note below on obsolete versions.
上述安装命令中有一行如下命令,目的是用于查看当前安装的FreeTDS支持的协议版本表:

$ cd freetds-0.95.92
$ ./configure --help
运行结果如下:

--with-tdsver=VERSION   TDS protocol version (4.2/4.6/5.0/7.0/7.1/7.2/7.3) [5.0]
配置 freetds.conf 文件

运行如下命令:

$ vi /usr/local/freetds/etc/freetds.conf

# 针对 MSSQL 修改配置
# A typical Microsoft server
[mssql_test]
        host = 1.2.3.4       
        port = 1433
        tds version = 7.3
        client charset=UTF-8  #确保中文无乱码
检测是否安装成功

运行如下命令:

$ cd /usr/local/freetds/bin
$ ./tsql -C
出现如下所示则表示安装成功:

Compile-time settings (established with the "configure" script)
                            Version: freetds v0.95.92
             freetds.conf directory: /usr/local/freetds/etc
     MS db-lib source compatibility: yes
        Sybase binary compatibility: no
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 7.3
                              iODBC: no
                           unixodbc: no
              SSPI "trusted" logins: no
                           Kerberos: no
                            OpenSSL: no
                             GnuTLS: no
更详细的的配置可官方文档:http://www.freetds.org/userguide/config.htm

尝试连接MSSQL

进入 freetds 安装目录,执行如下命令:

$ cd /usr/local/freetds/bin
$ ./tsql -H 192.168.0.254 -p 1433 -U sa -P 123456
出现如下则表示测试连接成功

locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>
# 按 ctrl + C 退出
注释:

-H 是MSSQL服务器地址,可测试远程地址
-p 是端口号
-U 是数据库用户名
-P 是数据库密码
编译PHP扩展 mssql

mssql扩展库添加后,PHP中可使用如下代码来连接mssql

$con = mssql_connect("host:1433","user","password") or die("SQL SERVER 数据库连接失败!");
可先去PHP官网下载对应版本的PHP完整包并解压,这里以 php-5.4.41 为例

# 进入mssql模块源码目录
$ cd php-5.4.41/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
make install 之后的运行结果:

Build complete.
Don"t forget to run "make test".
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
在上述目录中生成了 mssql.so 文件,接着编辑 php.ini ,增加 mssql 扩展库支持

$ vi /usr/local/php/etc/php.ini

# 启用如下,如无则添加
extension = "mssql.so"

# 保存并重启
$ /root/lnmp restart

# 查看是否配置成功
$ /usr/local/php/bin/php -m
扩展阅读:PHP扩展 mssql 连接远程 MSSQL

编译PHP扩展 PDO_DBLIB 库

pdo_dblib 扩展库添加后,PHP中可使用如下代码来连接 mssql

$con = new PDO("dblib:host=myHost;dbname=myDB","myUserName","myPassword");
可先去PHP官网下载对应版本的PHP完整包并解压,这里以 php-5.4.41 为例

# 进入mssql模块源码目录
$ cd php-5.4.41/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
安装完成后会在如下目录生成 pdo_dblib.so 文件

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
接着编辑 php.ini ,增加 pdo_dblib 扩展库支持

$ vi /usr/local/php/etc/php.ini

# 启用如下,如无则添加
extension = "pdo_dblib.so"

# 保存并重启
$ /root/lnmp restart

# 查看是否配置成功
$ /usr/local/php/bin/php -m

[lnmp配置php.ini]LNMP配置PHP支持连接MSSQL的例子

http://m.bbyears.com/shujuku/104150.html

推荐访问:lnmp环境搭建 lnmp建站教程 lnmp架构
相关阅读 猜你喜欢
本类排行 本类最新