
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の統合