nginx ./configure 找不到 openssl

nginx ./configure 找不到 openssl

我正在尝试安装 nginx,无论我做什么,nginx 似乎都找不到我的 openssl 路径。看起来它正在搜索任何 openssl 目录中不存在的文件。下面是我的 make 输出。我尝试为 nginx 指定各种路径来查找 openssl。

[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进行构建macOSopenssl通过 进行安装brew,则该openssl库将安装在如下路径下:/usr/local/opt/openssl。从brew info openssl

该公式仅是 keg,这意味着它没有符号链接到 /usr/local,

因为 Apple 已弃用 OpenSSL,转而使用自己的 TLS 和加密库。

openssl在这种情况下,正如 @Bingnan 所说,您可以让配置脚本知道via--with-cc-opt和的 include 和 lib 路径--with-ld-opt

./configure --with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"

相关内容