php centos选择sqlserver的驱动和扩展选择版本的说明

2023年2月23日13:41:48

首先是php php扩展 驱动 数据库的关系
image

官方文档说明:
https://learn.microsoft.com/zh-cn/sql/connect/php/step-1-configure-development-environment-for-php-development?view=sql-server-2017

https://learn.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017

PHP和odbc的关系

image

PHP和PHP扩展的关系

image

操作系统和odbc的关系

image

PHP扩展 pdo_sqlsrv和sqlsrv的版本,查看Changelog确定PHP和PHP扩展 哪个版本合适

image

举个例子:

php版本是7.2 系统是centos7.9
数据库 SQL Server on Linux 2017

先确定php扩展的版本在 https://pecl.php.net/package-changelog.php?package=pdo_sqlsrv&release=5.11.0beta1
查看可以使用版本大概是5.2到5.8

https://learn.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017
odbc驱动 确定为 ODBC Driver 17

centos7.x也支持 17.x的odbc驱动

那么安装就可以选择 pdo_sqlsrv sqlsrv 为5.6或者5.8 驱动为ODBC Driver 17,剩下安装就简单了

./pecl install sqlsrv-5.6.0 --with-php-config=/www/server/php/72/bin/php-config
./pecl install pdo_sqlsrv-5.6.0 --with-php-config=/www/server/php/72/bin/php-config
sudo su

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#RHEL 7 and Oracle Linux 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

#RHEL 8 and Oracle Linux 8
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo

#RHEL 9
curl https://packages.microsoft.com/config/rhel/9.0/prod.repo > /etc/yum.repos.d/mssql-release.repo

exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel

注意:使用宝塔这种类似的自动化的安装,可能会造成问题,建议自己编译安装,因为宝塔会造成多版本的glibc等底层包,可能会出现问题,

posted on 2024-05-12 22:33  zh7314  阅读(98)  评论(0编辑  收藏  举报