PHP 连接到 SQL Server 2008

问题描述 投票:0回答:2

我需要从 PHP 连接到 SQL Server 2008 实例。 Web服务器是 Centos 8 上的 Apache 2.4,带有 PHP 7.4、php-sqlsrv 扩展,我使用 PDO 来处理连接。 首先我测试了 cli 的连接,出现以下错误:

连接失败:SQLSTATE[08001]:[Microsoft][SQL Server 的 ODBC 驱动程序 17]SSL 提供程序:[错误:1425F102:SSL 例程:ssl_choose_client_version:不支持的协议]

稍微谷歌搜索一下,我就找到了 openssl.cnf 的方向,我将最低版本设置为 TLS 1.0(我知道它不安全,但它似乎有效),然后连接工作了,但仅限于 cli,当我从网站上尝试时,它仍然给出相同的错误。

我用于连接的代码是这样的(我更改了连接数据):

try {
    $conn = new PDO("sqlsrv:Server=database.local,1433;Database=database", "user", "password");
}
catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

你能帮我找出我错过了什么吗?

谢谢你

php sql-server sqlsrv
2个回答
0
投票
update-crypto-policies --set LEGACY

0
投票

设置后也有同样的问题

MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=0

/etc/ssl/openssl.cnf

可以在 PHP-CLI 中工作,但不能通过 Apache 工作。

为我解决这个问题的方法是将/etc/apache2/mods-available/ssl.conf中的

SSLCipherSuite
指令从
HIGH:!aNULL
更改为
HIGH:!aNULL:@SECLEVEL=1
并重新启动apache。

© www.soinside.com 2019 - 2024. All rights reserved.