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
내 OS 세부정보는 다음과 같습니다.
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
이것은 다음 웹사이트에서 가져온 것입니다: 몽고DB PHP 드라이버
다음 오류로 인해 설치가 중지되었습니다.
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 치명적인 오류: 'openssl/sha.h' 파일을 찾을 수 없습니다.
cd /usr/local/include
ln -s ../opt/openssl/include/openssl .
의견을 인용하려면:
Apple은 얼마 전(OS X 10.7에서) OpenSSL 공유 라이브러리를 더 이상 사용하지 않습니다. 이는 OpenSSL이 버전 간 바이너리 호환성을 제공하지 않기 때문에 기존 클라이언트를 모두 중단하지 않고는 공유 라이브러리를 최신 OpenSSL로 업데이트할 수 없기 때문입니다.
그런데 내 Mac에는 폴더가 포함되어 있지도 않습니다. 도와주세요.
which openssl
터미널에서 수행하여 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
답변1
올바른 솔루션
다시 시작하여 PHP, Laravel 및 MongoDB 확장에 대한 공식 설치 방법을 사용해 보겠습니다. 결국 개발을 위해 작동하는 기본 MAMP 서버가 있어야 합니다.
속도
이 단계에서는 우리가 사용하고 싶다고 가정합니다.스스로 만든개발 환경에 필요한 모든 도구는 기본적으로 macOS 버전을 유지하면서 기본적으로 사용할 수 있습니다.
- Homebrew를 설치합니다(완전성을 위해 이미 이 작업을 수행했습니다).
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-짧막 한 농담
- Node.js/npm을 설치합니다:
brew install node
- Homebrew 저장소에서 최신 PHP를 설치합니다.
brew install php
-다른 버전이 필요한 경우 설정 식별자를 사용하세요@
. 전임자:brew install [email protected]
- 종속성 관리를 위해 Composer를 설치합니다.
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
-짧막 한 농담
- 설치 확인
php --version composer --version
- Laravel 설치 - Composer에 의해 관리되며 일상적인 사용에는 영향을 미치지 않습니다.
composer global require laravel/installer
- 빈 프로젝트를 만듭니다.
composer create-project --prefer-dist laravel/laravel <app-name>
-app-name을 프로젝트 이름으로 바꾸십시오..
- 프로젝트 시작 확인
php artisan serve
-포트 8000에 설정된 IP 주소가 있는지 브라우저를 확인하세요.
위의 단계를 수행하면 이 답변과 질문이 이제 동일한 위치에서 시작됩니다.
추가MongoDB
에서 인용MongoDB 문서: MongoDB PHP 라이브러리 설치:
노트:
두 설치 방법 중 하나에 대한 빌드 프로세스에서 TLS 라이브러리를 찾을 수 없는 경우 개발 패키지(예: libssl-dev)와 pkg-config가 모두 설치되어 있는지 확인하세요.
귀하의 질문이 이 의견을 언급하고 있으므로 다음을 사용하여 문제를 해결해 보겠습니다.
brew install libssl-dev && brew install pkg-config
설명하다
패키지 libssl-dev
에 누락된 헤더 파일이 포함되어 있습니다. Homebrew Cellar에 설치된 패키지/스크립트는 pkg config
Cellar에도 설치된 패키지의 저장소를 검색합니다. Homebrew 외부의 라이브러리 경로는 보고하지 않습니다.. 이 2개의 패키지를 설치한 후 pecl
다음과 같이 명령이 완료되어야 합니다.MongoDB Laravel 통합