エラーが発生しました: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の統合

おすすめ記事