安装系统依赖和必要工具
apt-get update
apt-get install -y unixodbc-dev gcc g++ make
安装PECL(PHP 扩展库),如果没有安装的话。PECL是用于安装 PHP 扩展的工具,命令如下:
apt-get install -y php-pecl
添加Microsoft存储库的 GPG密钥及配置存储库(在容器内操作)
curl -fssl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
如果可以使用
apt-key
可以使用下面的
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
添加 Debian 12 的存储库
curl https://packages.microsoft.com/config/debian/12/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
更新软件源并安装 Microsoft ODBC Driver 17 for SQL Server
apt-get update
accept_eula=y apt-get install -y msodbcsql17
安装sqlsrv和pdo_sqlsrvPHP 扩展
pecl install sqlsrv
pecl install pdo_sqlsrv
/etc/php.ini
配置文件添加
extension=sqlsrv.so
extension=pdo_sqlsrv.so
连接报错:
SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol]
原因:当使用新版本的操作系统连接旧版本的数据库系统(如SQL Server 2008 R2)时,可能会遇到SSL协议不兼容的问题。这是因为新版本的操作系统可能升级了OpenSSL库,提高了最低支持的SSL协议版本,从而不再支持较低版本的SSL协议。
解决办法: 修改OpenSSL配置文件:通过编辑/etc/ssl/openssl.cnf文件,添加或修改配置项以启用较低版本的TLS协议(如TLSv1),可以解决此兼容性问题。这种方法不需要重启系统即可生效。
具体配置示例:在配置文件中,需要确保MinProtocol设置为TLSv1,并且CipherString设置为适当的安全级别。