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


相关文章
|
缓存 Linux 调度
【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动
VMware虚拟机使用默认安装,在掉电之后数据库无法启动
|
8月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
996 7
|
10月前
|
JavaScript Linux PHP
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
290 3
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
816 61
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
1358 21
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
11月前
|
自然语言处理 测试技术 API
TCPDF库详解:功能、作用及多语言安装指南-tcpdf可不是只有php能用-优雅草卓伊凡
TCPDF库详解:功能、作用及多语言安装指南-tcpdf可不是只有php能用-优雅草卓伊凡
797 5
|
10月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
763 0
|
监控 Java Shell
【YashanDB 知识库】ycm 托管数据库时,数据库非 OM 安装无法托管
本文主要介绍了因数据库未按规范使用 yasboot 安装导致的问题及解决方法。问题表现为无 yasom 和 yasagent 进程,且目录结构缺失,致使 ycm 无法托管与监控。分析发现可能是数据库版本旧或安装不规范引起。解决方法为先生成配置文件,安装 yasom 和 yasagent,再生成并修改托管配置模板,最终通过命令完成托管至 yasom 和 ycm。总结强调了按规范安装数据库的重要性以避免类似问题。
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
413 6
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常

热门文章

最新文章