PHP安装SqlServer扩展连接数据库

简介: docker 安装 php sqlsrv 扩展,sqlserver 驱动;aliyun linux安装 sqlserver odbc驱动,安装 php sqlsrv 扩展

要想使用 PHP 连接 SQLServer 需要安装 PHP 的 sqlsrv 的扩展以及 SQLServer 的驱动软件两个东西。注意这是两个是不同的安装包。

安装SQLServer驱动

查看驱动与PHP版本的对应关系:版本资料介绍

查看驱动安装步骤:英文版  中文版

以上两张图分别帮我们提供了在进行扩展及安装包选择时的依据。我的版本是PHP7.3,因此,ODBC的版本要选择17,否则安装后也仍然会提示缺少扩展。

这里以Docker PHP7.3的版本以及 Aliyun Linux 2.1903 LTS 64位为例介绍安装步骤。

Docker PHP7.3

在上述安装连接中,我们选择 Debian 版本进行安装操作:

sudosucurl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -#Download appropriate package for the OS version#Choose only ONE of the following, corresponding to your OS version#Debian 8 (only supported up to driver version 17.6)curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Debian 9curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Debian 10curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Debian 11curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list
exitsudo apt-get update
sudoACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmdsudoACCEPT_EULA=Y apt-get install -y mssql-tools
echo'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headerssudo apt-get install -y unixodbc-dev
# optional: kerberos library for debian-slim distributionssudo apt-get install -y libgssapi-krb5-2


上文提供了不同的Debian 版本,此处我们选择 Debian 11 。

检查是否安装成功:

odbcinst -q-d-n"ODBC Driver 17 for SQL Server"


注意,这里的 UsageCount 当这个数值变为0时,即使你已经安装好了这个驱动,也会报找不到驱动。

卸载方法:

apt-get remove msodbcsql17
apt-get remove mssql-tools
同时删除 ./~bashrc 中的export path

Aliyun Linux 2.1903 LTS 64

因为Aliyun Linux 系统是兼容Red Hat 7.0 所以我们在这里选择7.0版本进行安装:

sudosu#Download appropriate package for the OS version#Choose only ONE of the following, corresponding to your OS version#Red Hat Enterprise Server 6 (only supported up to driver version 17.7)curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
#Red Hat Enterprise Server 7 and Oracle Linux 7curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
#Red Hat Enterprise Server 8 and Oracle Linux 8curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
exitsudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflictssudoACCEPT_EULA=Y yum install -y msodbcsql17
# optional: for bcp and sqlcmdsudoACCEPT_EULA=Y yum install -y mssql-tools
echo'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headerssudo yum install -y unixODBC-devel


安装 PHP sqlsrv 扩展

Docker 安装

## 创建并初始化 /usr/src/php目录docker-php-source extract
## 此处可环卫你自己的pathcd /tmp
## 下载扩展  下载扩展地址:https://pecl.php.net/package/pdo_sqlsrvcurl-L-o /tmp/pdo_sqlsrv.tgz  https://pecl.php.net/get/pdo_sqlsrv-5.9.0.tgz
curl-L-o /tmp/sqlsrv.tgz  https://pecl.php.net/get/sqlsrv-5.9.0.tgz
## 解压tar zxvf pdo_sqlsrv.tgz
tar zxvf sqlsrv.tgz
## 移动到php扩展目录 mv pdo_sqlsrv-5.9.0  /usr/src/php/ext/pdo_sqlsrv
mv sqlsrv-5.9.0  /usr/src/php/ext/sqlsrv
## 安装扩展docker-php-ext-install pdo_sqlsrv
docker-php-ext-install sqlsrv
## 查看扩展是否安装上php -m |grep sqlsrv
## 重启php容器,扩展已经安装完毕



Aliyun Linux 2.1903 LTS 64

此处PHP因为我是使用的 yum 直接安装的,因此在安装扩展的时候也是使用 yum 的方式进行安装,推荐大家使用这种方式进行安装,可以省掉很多不必要的麻烦。

#安装yum install php73-php-sqlsrv
#检查是否安装成功php -m |grep sqlsrv
#重启systemctl restart php73-php-fpm


常见问题

1、TSL版本导致的连接安全性问题

[08001][Microsoft][ODBC Driver 17for SQL Server]SSL Provider: [OpenSSL library could not be loaded, make sure OpenSSL 1.0 or 1.1 is installed]
[08001][Microsoft][ODBC Driver 17for SQL Server]Client unable to establish connection (0) (SQLDriverConnect)


解决方法:

找到/etc/ssl/openssl.cnf 后,找到 system_default_sect 节点后,加入或修改为以下即可:

[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=2


相关文章
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1446 152
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1058 156
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
723 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
9月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
9月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
1030 7
|
10月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
430 5
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
837 61
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
1376 21
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
11月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1453 0