nssl.c:24:10: fatal error: 'openssl/sha.h' file not found
#include <openssl/sha.h>
^~~~~~~~~~~~~~~
1 error generated.
make: *** [src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.lo] Error 1
ERROR: `make' failed
我的操作系统详细信息是:
ProductName: macOS
ProductVersion: 14.3
BuildVersion: 23D56
unix variant
local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:30:27 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T8103 x86_64
php version : PHP 8.2.4
我发出终端命令:sudo pecl install mongodb
这是来自这个网站: MongoDB PHP Driver
我的安装因以下错误而停止:
nssl.c:24:10: fatal error: 'openssl/sha.h' file not found
#include <openssl/sha.h>
^~~~~~~~~~~~~~~
1 error generated.
make: *** [src/libmongoc/src/libmongoc/src/mongoc/mongoc-crypto-openssl.lo] Error 1
ERROR: `make' failed
我从以下位置找到了解决方法:Mac OSX fatal error: 'openssl/sha.h' file not found
cd /usr/local/include
ln -s ../opt/openssl/include/openssl .
引用一条评论:
Apple 不久前(在 OS X 10.7 中)弃用了其 OpenSSL 共享库。这是因为 OpenSSL 不提供版本间的二进制兼容性,因此我们无法在不破坏所有现有客户端的情况下将共享库更新到最新的 OpenSSL。
但我什至在我的 mac 中没有包含文件夹...请帮助
我通过在终端中执行操作获得了 openssl 的路径which openssl
-
/opt/homebrew/bin/openssl
正在做
% ls -l /opt/homebrew/bin/openssl
lrwxr-xr-x 1 janammaharjan admin 37 Feb 7 22:12
/opt/homebrew/bin/openssl -> ../Cellar/openssl@3/3.2.1/bin/openssl
正确的解决方案
让我们重新开始并使用 PHP、Laravel 和 MongoDB 扩展的官方安装方法。毕竟,您应该拥有一个可工作的本机 MAMP 服务器用于开发。
脚步
这些步骤假设我们希望在开发环境中本地使用Homebrew来满足我们所需的一切,同时保持所需工具的 macOS 版本的原始状态。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 1个内衬brew install node
brew install php
-如果您需要不同的版本,请使用设置标识符@
。前任:brew install [email protected]
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
-一件内衬php --version composer --version
composer global require laravel/installer
composer create-project --prefer-dist laravel/laravel <app-name>
-请务必将 app-name 替换为您的项目名称。php artisan serve
-检查您的浏览器在端口 8000 上设置的任何 IP 地址参考:如何在 macOS 上安装 Laravel
上述步骤确保此答案和您的问题现在从同一位置开始:
添加 MongoDB
引用MongoDB 文档:安装 MongoDB PHP 库:
由于您的问题引用了此注释,让我们用以下方法修复它:
brew install libssl-dev && brew install pkg-config
解释
该
libssl-dev
包包含缺少的头文件。安装在 Homebrew Cellar 中的包pkg config
/脚本将搜索库中也安装在 Cellar 中的包。 它不会将 Homebrew 之外的库路径报告回 make。安装这 2 个软件包后,pecl
命令应按照MongoDB Laravel Integration完成