使用ubuntu 22,php8.2,odbc driver 18,OpenSSL 3.0.2,当我尝试使用pdo_sqlsrv连接sqlsrv数据库时,它返回我这个错误:
SQLSTATE[08001]:[Microsoft][ODBC Driver 18 for SQL Server]SSL提供程序:[错误:0A000086:SSL例程::证书验证失败:自签名证书]
我使用的代码:
<?php
$sSGBD = "sqlsrv";
$sDatabase = "db_Des";
$sServer = "10...24";
$sUser = "aplic_...";
$sPwd = "....";
try {
if(!$oPDO) {
$oPDO = new PDO ("$sSGBD:Server=$sServer;Database=$sDatabase","$sUser","$sPwd");
$oPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
} catch(PDOException $e) {
echo $e->getMessage();
}
我有一个服务器在生产与Debian 11,php 7.3,ODBC 17,openssl 1.1和pdo_sqlsrv,它连接以及与我的2008 sqlsrv数据库。我已经尝试在另一台具有相同规格的服务器上运行该脚本(Debian 11,php 7.3,ODBC 17,openssl 1.1(相同配置)),但它返回了与ubuntu 22相同的错误。
在我使用ubuntu 22的php 8.2安装中,我试图连接sqlsrv 2008和sqlsrv 2022,但它不工作。
2条答案
按热度按时间gtlvzcf81#
TrustServerCertificate=false或TrustServerCertificate=true
你可以尝试使用pdo dsn参数
5lhxktic2#