nginxをインストールしようとしていますが、私が何をしても、nginxは私のopensslパスを見つけることができないようです。 opensslディレクトリに存在しないファイルを検索するようです。以下は私のmake出力です。 opensslを見つけるためにnginxにさまざまなパスを指定してみました。
[root@server nginx-0.8.54]# make
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-0.8.54'
cd /usr/local/ssl \
&& make clean \
&& ./config --prefix=/usr/local/ssl/.openssl no-shared no-threads \
&& make \
&& make install LIBDIR=lib
make[2]: Entering directory `/usr/local/ssl'
make[2]: *** No rule to make target `clean'. Stop.
make[2]: Leaving directory `/usr/local/ssl'
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/root/nginx-0.8.54'
make: *** [build] Error 2
誰でもこれについてどんな考えを持っていますか?
答え1
configure
これは、nginxが相対パスを使用するときにも発生します。/
フルパスを使用すると、ライブラリをより確実に見つけることができます。
動作しません:./configure --with-openssl=../openssl-source
働く:./configure --with-openssl=/home/build/src/openssl-source
答え2
./configure —with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"
答え3
「yum install openssl-devel」を実行すると、Ubuntuに切り替えるよりはるかに簡単に見えます。
OPと同じ問題があります。 opensslをインストールしましたが、nginxがコンパイルしたときに見つかりましたが、libssl-develへのポインタが役に立ちました。
答え4
nginx
を介してビルドしmacOS
てopenssl
インストールしようとすると、brew
ライブラリopenssl
は次のパスにインストールされます/usr/local/opt/openssl
。 ~からbrew info openssl
式はケグ専用です。これは/usr/localにシンボリックリンクされていないことを意味します。
AppleはOpenSSLを使用せず、代わりに独自のTLSと暗号化ライブラリを使用するためです。
openssl
--with-cc-opt
この場合、@ Bingnanが述べたように、次のように設定スクリプトにインクルードパスとlibパスを通知できます--with-ld-opt
。
./configure --with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"