2023年2月23日13:41:48
首先是php php扩展 驱动 数据库的关系
PHP和odbc的关系
PHP和PHP扩展的关系
操作系统和odbc的关系
PHP扩展 pdo_sqlsrv和sqlsrv的版本,查看Changelog确定PHP和PHP扩展 哪个版本合适
举个例子:
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等底层包,可能会出现问题,