PHP 7.0.33 与 sqlsrv 给出错误 "SSL Provider: [OpenSSL library could not be loaded, make sure OpenSSL 1.0 or 1.1 is installed]"

标签 php database openssl sqlsrv

我在 MacOS Catalina (10.15.7) 上使用带有 PHP 7.0.33、Apache 2.2.34 的 sqlsrv 模块。

此代码块中sqlsrv_connect的执行

$serverName = "192.168.4.14";
$connectionInfo = array(
    "Database" => "mydatabase",
    "UID" => "myusername",
    "PWD" => "mypassword"
);
// Create connection
$conn = sqlsrv_connect($serverName, $connectionInfo);

给我错误

[Microsoft][ODBC Driver 17 for SQL Server]SSL 提供程序:[无法加载 OpenSSL 库,请确保安装 OpenSSL 1.0 或 1.1]

我的 Mac 上安装了多个版本的 PHP,所以我认为这是错误的原因,但打开 info.php 页面,它告诉我 OpneSSL 模块已加载:

enter image description here

以下是 info.php 给出的有关 pdo_sqlsrv 模块的详细信息:

enter image description here

sqlsrv模块:

enter image description here

对于我还可以检查哪些内容来找出错误原因,您有什么建议吗?

提前谢谢大家。

编辑:info.php 显示在配置命令中使用了 --with-openssl=/Applications/MAMP/Library 这是 v1.0.2o。

最佳答案

已解决!!! 据报道:https://github.com/microsoft/homebrew-mssql-release/issues/37 .

/usr/local/opt homebrew 创建了符号链接(symbolic link) <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="640b14010a17170824554a55" rel="noreferrer noopener nofollow">[email protected]</a> .

该问题与 Microsoft 驱动程序无法读取 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="85eaf5ebe0f6f6e9c5b4abb4" rel="noreferrer noopener nofollow">[email protected]</a> 格式的目录有关。 .

解决方案非常简单,只需重新创建符号链接(symbolic link)并省略 @1.1后缀:

ln -s /usr/local/Cellar/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="96f9e6f3f8e5e5fad6a7b8a7" rel="noreferrer noopener nofollow">[email protected]</a>/1.1.1k /usr/local/opt/openssl

感谢大家的贡献!

关于PHP 7.0.33 与 sqlsrv 给出错误 "SSL Provider: [OpenSSL library could not be loaded, make sure OpenSSL 1.0 or 1.1 is installed]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67489771/

相关文章:

javascript - 从mysql表递归问题构建树数据结构

ruby-on-rails - 为 PostgreSQL、openssl 库安装 gem pg

php - 将 MySQL 数据导入到单个 Bootstrap 模态框中?

PHP/MySQL - 使用自己的单选按钮列出行,然后使用选定的单选按钮添加所有行

javascript - Vue.js - 具有两个行跨度的组件

php - 什么是更好的额外查询或数据库中的额外列?

java - 具有不断变化的接口(interface)的装饰器模式

c - 通过管道使用 openssl 安全吗?

c - 使用 OpenSSL API 验证 Authenticode 签名的可执行文件和 DLL

php - 逃离 MySQL PHP