오류가 발생합니다: Mac m1에서 laravel 프로젝트용 mongodb를 설치할 때 치명적인 오류: 'openssl/sha.h' 파일을 찾을 수 없습니다.

오류가 발생합니다: Mac m1에서 laravel 프로젝트용 mongodb를 설치할 때 치명적인 오류: 'openssl/sha.h' 파일을 찾을 수 없습니다.
 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 버전을 유지하면서 기본적으로 사용할 수 있습니다.

  1. Homebrew를 설치합니다(완전성을 위해 이미 이 작업을 수행했습니다).
    • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"-짧막 한 농담
  2. Node.js/npm을 설치합니다:
    • brew install node
  3. Homebrew 저장소에서 최신 PHP를 설치합니다.
    • brew install php-다른 버전이 필요한 경우 설정 식별자를 사용하세요 @. 전임자:brew install [email protected]
  4. 종속성 관리를 위해 Composer를 설치합니다.
    • curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer-짧막 한 농담
  5. 설치 확인
    • php --version composer --version
  6. Laravel 설치 - Composer에 의해 관리되며 일상적인 사용에는 영향을 미치지 않습니다.
    • composer global require laravel/installer
  7. 빈 프로젝트를 만듭니다.
    • composer create-project --prefer-dist laravel/laravel <app-name>-app-name을 프로젝트 이름으로 바꾸십시오..
  8. 프로젝트 시작 확인
    • php artisan serve-포트 8000에 설정된 IP 주소가 있는지 브라우저를 확인하세요.

인용하다:macOS에 Laravel을 설치하는 방법

위의 단계를 수행하면 이 답변과 질문이 이제 동일한 위치에서 시작됩니다.

추가MongoDB

에서 인용MongoDB 문서: MongoDB PHP 라이브러리 설치:

노트:

두 설치 방법 중 하나에 대한 빌드 프로세스에서 TLS 라이브러리를 찾을 수 없는 경우 개발 패키지(예: libssl-dev)와 pkg-config가 모두 설치되어 있는지 확인하세요.

귀하의 질문이 이 의견을 언급하고 있으므로 다음을 사용하여 문제를 해결해 보겠습니다.

  1. brew install libssl-dev && brew install pkg-config

설명하다

패키지 libssl-dev에 누락된 헤더 파일이 포함되어 있습니다. Homebrew Cellar에 설치된 패키지/스크립트는 pkg configCellar에도 설치된 패키지의 저장소를 검색합니다. Homebrew 외부의 라이브러리 경로는 보고하지 않습니다.. 이 2개의 패키지를 설치한 후 pecl다음과 같이 명령이 완료되어야 합니다.MongoDB Laravel 통합

관련 정보